Source commit: 750f29790fe2046599fbe5b5d06fdb63d92fabff Public tree identity: sha256:02326e08850bb287585789733ea5f3f153e1f7f3fd88afcc24e249107df91506
69 lines
3.6 KiB
JavaScript
Executable file
69 lines
3.6 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
const assert = require("assert");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
const repo = path.resolve(__dirname, "..");
|
|
|
|
function read(relativePath) {
|
|
return fs.readFileSync(path.join(repo, relativePath), "utf8");
|
|
}
|
|
|
|
function expect(source, name, pattern) {
|
|
assert.match(source, pattern, `missing public local demo evidence: ${name}`);
|
|
}
|
|
|
|
const publicAcceptance = read("scripts/acceptance-public.sh");
|
|
const publicSplit = read("scripts/verify-public-split.sh");
|
|
const cliInstall = read("scripts/cli-install-smoke.js");
|
|
const flagship = read("scripts/flagship-demo-smoke.js");
|
|
const cliLocalRun = read("scripts/cli-local-run-smoke.js");
|
|
const nodeAttach = read("scripts/node-attach-smoke.js");
|
|
const vscodeExtension = read("scripts/vscode-extension-smoke.js");
|
|
const vscodeF5 = read("scripts/vscode-f5-smoke.js");
|
|
const artifactDownload = read("scripts/artifact-download-smoke.js");
|
|
const artifactExport = read("scripts/artifact-export-smoke.js");
|
|
|
|
for (const script of [publicAcceptance, publicSplit]) {
|
|
for (const smoke of [
|
|
"scripts/cli-install-smoke.js",
|
|
"scripts/flagship-demo-smoke.js",
|
|
"scripts/cli-local-run-smoke.js",
|
|
"scripts/node-attach-smoke.js",
|
|
"scripts/vscode-extension-smoke.js",
|
|
"scripts/vscode-f5-smoke.js",
|
|
"scripts/artifact-download-smoke.js",
|
|
"scripts/artifact-export-smoke.js",
|
|
]) {
|
|
assert(script.includes(`node ${smoke}`), `public demo gate must run ${smoke}`);
|
|
}
|
|
}
|
|
|
|
expect(cliInstall, "CLI install from project path", /cargo[\s\S]*install[\s\S]*crates\/disasmer-cli/);
|
|
expect(cliInstall, "CLI install smoke targets flagship project", /const project = path\.join\(repo, "examples\/launch-build-demo"\)/);
|
|
expect(cliInstall, "installed CLI inspects flagship project", /installedBin[\s\S]*\["bundle", "inspect", "--project", project\]/);
|
|
|
|
expect(flagship, "flagship project source is Rust workflow", /examples\/launch-build-demo[\s\S]*src\/build\.rs/);
|
|
expect(flagship, "flagship source avoids local machine assumptions", /forbiddenSourceAssumptions/);
|
|
expect(flagship, "flagship cargo test runs", /cargo[\s\S]*test[\s\S]*launch-build-demo/);
|
|
|
|
expect(cliLocalRun, "local run starts node process", /cli_process_started_node_process[\s\S]*true/);
|
|
expect(cliLocalRun, "local run records logs and metadata", /log_event_response[\s\S]*task_log_recorded[\s\S]*vfs_metadata_response[\s\S]*vfs_metadata_recorded/);
|
|
expect(cliLocalRun, "local run stages artifact", /\/vfs\/artifacts\/cli-run-output\.txt/);
|
|
|
|
expect(nodeAttach, "Linux node attach creates enrollment grant", /create_node_enrollment_grant/);
|
|
expect(nodeAttach, "Linux node attach uses enrollment exchange", /used_enrollment_exchange[\s\S]*true/);
|
|
expect(nodeAttach, "attached Linux node runs work", /runAttachedNodeWork[\s\S]*node_status[\s\S]*completed/);
|
|
|
|
expect(vscodeExtension, "extension contributes debugger", /contributes\.debuggers[\s\S]*type === "disasmer"/);
|
|
expect(vscodeF5, "F5 uses local-services backend", /runtimeBackend[\s\S]*local-services/);
|
|
expect(vscodeF5, "F5 exposes virtual thread", /compile linux[\s\S]*virtual thread/);
|
|
expect(vscodeF5, "F5 records coordinator task event", /coordinator_task_events[\s\S]*value === 1/);
|
|
|
|
expect(artifactDownload, "artifact download creates scoped link", /create_artifact_download_link/);
|
|
expect(artifactDownload, "artifact download opens stream", /open_artifact_download_stream/);
|
|
expect(artifactExport, "artifact export targets receiver node", /export_artifact_to_node[\s\S]*node-export-receiver/);
|
|
expect(artifactExport, "artifact export rejects coordinator bulk relay", /coordinator_bulk_relay_allowed[\s\S]*false/);
|
|
|
|
console.log("Public local demo matrix smoke passed");
|