Testing with POSIX tools
Provider tests need two levels: code checks and filesystem behavior.
Compile the provider
Section titled “Compile the provider”The repo-level provider gate is:
just providers-checkThat gate sets up the WASI environment, runs provider clippy, and checks provider test compilation. The underlying checks look like:
cargo check -p omnifs-provider-db --target wasm32-wasip2cargo clippy -p 'omnifs-provider-*' -p 'omnifs-tool-*' -p test-provider --target wasm32-wasip2 -- -D warningscargo test -p omnifs-provider-db --target wasm32-wasip2 --no-runWASM provider tests can compile on the host test harness, but they do not execute unless a WASM runtime is involved. Use --no-run for target-specific provider compilation checks.
Run the dev runtime
Section titled “Run the dev runtime”From the omnifs source checkout:
omnifs dev -yomnifs statusomnifs shellomnifs dev builds the dev image, wires provider manifests from the source checkout, materializes contributor fixtures and credentials, and starts the runtime with workspace providers mounted under /omnifs.
Exercise the tree
Section titled “Exercise the tree”Test the whole traversal path, not only the final file:
ls /omnifsfind /omnifs/dns -maxdepth 2 -type f | headcat /omnifs/dns/example.com/MXcat /omnifs/docker/system/version.json | jq .cat /omnifs/db/tables/Album/schema.sqlFor provider path changes, check each intermediate directory. Literal route prefixes should be navigable. Dynamic captures should not accidentally shadow static control directories.
Use ordinary tools
Section titled “Use ordinary tools”A provider should behave like files for common tools:
ls -l /omnifs/github/0xff-ai/omnifs/issues/opencat /omnifs/arxiv/papers/1706.03762/paper.json | jq .grep -R "bug" /omnifs/linear/teams/ENG/issues/openfind /omnifs/docker/containers -maxdepth 3 -type fThe goal is not to prove every API endpoint. The goal is to prove the filesystem surface is coherent.
Debug failures
Section titled “Debug failures”Use:
omnifs logs -fomnifs inspect --plainomnifs status --detailLook for failed callouts, denied capabilities, stale cache writes, missing credentials, and route capture parse failures.