Source commit: e570b80c3a0f4b152a9aa0e7bb8635b3eebcec27 Public tree identity: sha256:cff3388143eb2e9476804cfa1c1246e3a46d485d8aef90f2cdd4df45f2b69abf
48 lines
1.6 KiB
JavaScript
Executable file
48 lines
1.6 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
const assert = require("assert");
|
|
const cp = require("child_process");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
const repo = path.resolve(__dirname, "..");
|
|
const sdk = fs.readFileSync(path.join(repo, "crates/clusterflux-sdk/src/lib.rs"), "utf8");
|
|
const productRuntime = fs.readFileSync(
|
|
path.join(repo, "crates/clusterflux-sdk/src/sdk_runtime.rs"),
|
|
"utf8"
|
|
);
|
|
|
|
assert.match(sdk, /pub struct RuntimeSpawnEvent/);
|
|
assert.match(sdk, /pub debugger_visible: bool/);
|
|
assert.match(sdk, /fn register_runtime_thread/);
|
|
assert.match(sdk, /register_runtime_thread\(id, self\.name, self\.env\)/);
|
|
assert.match(sdk, /pub fn debugger_visible\(&self\) -> bool/);
|
|
assert.match(sdk, /ProductRuntimeConfig::from_env\(\)/);
|
|
assert.match(sdk, /start_remote_task\(\s*config,\s*task_id/);
|
|
assert.match(sdk, /start_guest_host_task/);
|
|
assert.match(sdk, /join_remote_task\(remote\)/);
|
|
assert.doesNotMatch(productRuntime, /"type": "launch_task"/);
|
|
assert.match(productRuntime, /native SDK task spawning requires coordinator EntrypointV1 execution/);
|
|
assert.match(productRuntime, /task_start_v1/);
|
|
assert.match(productRuntime, /task_join_v1/);
|
|
assert.match(productRuntime, /command_run_v1/);
|
|
assert.match(productRuntime, /remote_completion_observed/);
|
|
assert.match(productRuntime, /TaskJoinState::Pending/);
|
|
assert.doesNotMatch(
|
|
productRuntime,
|
|
/entry\s*\(/,
|
|
"product runtime must not invoke the submitted local Rust closure"
|
|
);
|
|
|
|
cp.execFileSync(
|
|
"cargo",
|
|
[
|
|
"test",
|
|
"-p",
|
|
"clusterflux-sdk",
|
|
"spawn_task_start_registers_debugger_visible_runtime_thread",
|
|
],
|
|
{ cwd: repo, stdio: "inherit" }
|
|
);
|
|
|
|
console.log("SDK spawn runtime smoke passed");
|