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:
+15
-4
@@ -221,10 +221,21 @@ impl Runtime {
|
||||
pub fn new(cache: &Path) -> Result<Arc<Self>> {
|
||||
let mut config = Config::new();
|
||||
config.epoch_interruption(true);
|
||||
std::fs::create_dir_all(cache)?;
|
||||
let mut cache_config = wasmtime::CacheConfig::new();
|
||||
cache_config.with_directory(cache.canonicalize()?);
|
||||
config.cache(Some(wasmtime::Cache::new(cache_config)?));
|
||||
let disk_cache = (|| -> Result<_> {
|
||||
std::fs::create_dir_all(cache)?;
|
||||
let mut cache_config = wasmtime::CacheConfig::new();
|
||||
cache_config.with_directory(cache.canonicalize()?);
|
||||
Ok(wasmtime::Cache::new(cache_config)?)
|
||||
})();
|
||||
match disk_cache {
|
||||
Ok(cache) => {
|
||||
config.cache(Some(cache));
|
||||
}
|
||||
Err(error) => eprintln!(
|
||||
"compile cache {} unavailable: {error}; running without disk cache",
|
||||
cache.display()
|
||||
),
|
||||
}
|
||||
let engine = Engine::new(&config)?;
|
||||
|
||||
let mut linker: Linker<ProcessState> = Linker::new(&engine);
|
||||
|
||||
Reference in New Issue
Block a user