host: review fixes for cargo.build, the test runner, the console, and main; tests for every PROTOCOL.md rule
cargo.build and the runner (review T22R): builds use the network again; core.unlock and core.notify in order under the runner; quiet test output; manifest preparation keeps [workspace], target tables, renamed and optional entries; cargo.rpc.discover; -32004 with data.output; retention of 10 builds; light, empty test worlds with an in-memory journal; only CARGO_/RUST_/SAUSAGE_ variables; stdin is null; the runner through --config. A compile cache that cannot be created is not fatal. Activation replaces plugin.wasm without a gap. Console and main: init ships the workspace Cargo.lock and creates the world atomically; each console command runs in its own task, so ps, stop, and kill work during a slow call; SAUSAGE_HEADLESS; the terminal mode is restored; signals during boot; chat text is not taken as a command. Tests: 20 more tests for PROTOCOL.md sections 2 to 10; the cargo tests choose the libtest binary from cargo's JSON output and time out.
This commit is contained in:
@@ -123,6 +123,21 @@ impl Probe {
|
||||
});
|
||||
Ok("started".into())
|
||||
}
|
||||
/// Leave an unfinished diagnostic before the SDK writes its framed response.
|
||||
fn framed_output(&self) -> Result<String> {
|
||||
print!("partial diagnostic");
|
||||
Ok("intact".into())
|
||||
}
|
||||
/// Keep the process alive until the test releases its background task.
|
||||
fn background_hold(&self) -> Result<String> {
|
||||
sausage_plugin::background(async {
|
||||
while !std::path::Path::new("/release-background").exists() {
|
||||
wstd::task::sleep(wstd::time::Duration::from_millis(10)).await;
|
||||
}
|
||||
std::fs::write("/background-ended", "done").unwrap();
|
||||
});
|
||||
Ok(sausage_plugin::pid())
|
||||
}
|
||||
/// Keep a pollable alive for one hour.
|
||||
fn sleepy(&self) -> Result<()> {
|
||||
sausage_plugin::background(async {
|
||||
|
||||
Reference in New Issue
Block a user