From freenet-freenet-agent-skills
Runs integration tests requiring Linux loopback range (127.x.x.x) via Docker. Use for tests failing on macOS with 'Can't assign requested address'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/freenet-freenet-agent-skills:linux-testThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Some Freenet integration tests require Linux's full loopback range (`127.x.x.x`) and fail on macOS with "Can't assign requested address". This skill runs those tests inside a Docker container using the `docker/test-runner/` infrastructure.
Some Freenet integration tests require Linux's full loopback range (127.x.x.x) and fail on macOS with "Can't assign requested address". This skill runs those tests inside a Docker container using the docker/test-runner/ infrastructure.
/freenet:linux-test run_delegate_messaging_e2e — auto-wraps as cargo test with --nocapture/freenet:linux-test cargo test -p freenet -- test_name — passed through directlyThese tests bind multiple loopback addresses and need Linux:
| Test | Package |
|---|---|
run_app_blocked_peers | freenet-ping-app |
run_delegate_messaging_e2e | freenet-ping-app |
run_app_delegate_wasmtime | freenet-ping-app |
edge_case_state_sizes | freenet |
error_notification | freenet |
Tests in connectivity.rs | freenet |
Determine the command to run inside Docker:
Usage: /freenet:linux-test <test_name_or_cargo_args>
Examples:
/freenet:linux-test run_delegate_messaging_e2e
/freenet:linux-test cargo test -p freenet -- test_name
/freenet:linux-test cargo test -p freenet-ping-app --test run_app_blocked_peers -- --nocapture
Known Linux-required tests:
- run_app_blocked_peers (freenet-ping-app)
- run_delegate_messaging_e2e (freenet-ping-app)
- run_app_delegate_wasmtime (freenet-ping-app)
- edge_case_state_sizes (freenet)
- error_notification (freenet)
- connectivity tests (freenet)
cargo: Use arguments as-is. Append -- --nocapture if no -- separator is present.cargo test -p freenet --test <name> -- --nocapturefreenet-ping-app tests: cargo test -p freenet-ping-app --test <name> -- --nocapture# Check if the image exists
docker image inspect freenet-test-runner >/dev/null 2>&1
If the image does NOT exist, build it:
docker build -t freenet-test-runner -f docker/test-runner/Dockerfile .
Tell the user: "Building Docker image freenet-test-runner (first time only, takes a few minutes)..."
Execute the test using docker/test-runner/run.sh:
docker/test-runner/run.sh <command args>
Important: Use run_in_background for the Bash tool since tests can take several minutes. Set a generous timeout (600000ms / 10 minutes).
After the test completes:
docker volume rm freenet-test-build freenet-test-target freenet-test-cargonpx claudepluginhub freenet/freenet-agent-skillsGuides Docker usage: debugging container failures, writing Dockerfiles, docker-compose for integration tests, image optimization, volumes, multi-stage builds, and deployments.
Provides platform-specific Docker guidance for Windows file paths, Linux daemon configs, SELinux/AppArmor, and macOS considerations. Useful for cross-platform Docker setups.
Sets up integration tests across databases, APIs, and message queues using Testcontainers, with DB seeding, cleanup strategies, and Docker dependencies.