Public release release-e47f9c27bbeb
Source commit: e47f9c27bbebe6759f6b6fe7b12fd00bb20d116d Public tree identity: sha256:4c1af1dfd67d3f2b5088531ea8727b11124b013d2251a4d5088f51a6424c0196
This commit is contained in:
parent
3a4d4fa7ae
commit
9223c54939
30 changed files with 4195 additions and 434 deletions
|
|
@ -14,6 +14,55 @@ const { DapClient } = require("./dap-client");
|
|||
sourceLines.findIndex((line) => line.includes("pub async fn build_main()")) + 1;
|
||||
assert(buildMainLine > 0, "flagship source must contain build_main");
|
||||
|
||||
const hostileDapClient = new DapClient();
|
||||
try {
|
||||
const initialize = hostileDapClient.send("initialize", {
|
||||
adapterID: "clusterflux",
|
||||
linesStartAt1: true,
|
||||
columnsStartAt1: true,
|
||||
});
|
||||
await hostileDapClient.response(initialize, "initialize");
|
||||
for (const processId of [
|
||||
"",
|
||||
" ",
|
||||
"bad\u0000process",
|
||||
"bad process!",
|
||||
"x".repeat(256),
|
||||
]) {
|
||||
const malformedLaunch = hostileDapClient.send("launch", {
|
||||
entry: "build",
|
||||
project,
|
||||
runtimeBackend: "local-services",
|
||||
processId,
|
||||
});
|
||||
const rejection = await hostileDapClient.failure(
|
||||
malformedLaunch,
|
||||
"launch"
|
||||
);
|
||||
assert.match(
|
||||
rejection.message,
|
||||
/invalid DAP processId: ProcessId is invalid/,
|
||||
`unexpected malformed DAP identifier response: ${JSON.stringify(rejection)}`
|
||||
);
|
||||
}
|
||||
const validLaunch = hostileDapClient.send("launch", {
|
||||
entry: "build",
|
||||
project,
|
||||
runtimeBackend: "local-services",
|
||||
processId: "vp-valid-after-malformed",
|
||||
});
|
||||
await hostileDapClient.response(validLaunch, "launch");
|
||||
await hostileDapClient.waitFor(
|
||||
(message) => message.type === "event" && message.event === "initialized"
|
||||
);
|
||||
await hostileDapClient.close();
|
||||
} catch (error) {
|
||||
if (hostileDapClient.child.exitCode === null) {
|
||||
hostileDapClient.child.kill("SIGKILL");
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
const asynchronousClient = new DapClient();
|
||||
try {
|
||||
const initialize = asynchronousClient.send("initialize", {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue