linux-test
/linux-test
Run integration tests that require Linux (full loopback range 127.x.x.x) via Docker. Use when a test fails on macOS with "Can't assign requested address" or when the user says "/linux-test".
- Author
- freenet ↗
- Repository
- freenet-agent-skills ↗
- Licence
- LGPL
- Last repository change
- 26.10.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 26.10.2026, without references to retired models or APIs.
LGPL, otwarta.
What it does and when to use it
Run integration tests that require Linux (full loopback range 127.x.x.x) via Docker. Use when a test fails on macOS with "Can't assign requested address" or when the user says "/linux-test".
Triggers from the description
Original author description
Run integration tests that require Linux (full loopback range 127.x.x.x) via Docker. Use when a test fails on macOS with "Can't assign requested address" or when the user says "/linux-test".
How it works
- Overview
- Arguments
- Known Linux-Required Tests
- Step 1: Parse Arguments
- Step 2: Ensure Docker Image Exists
- Step 3: Run the Test
- Step 4: Report Results
- Notes
SKILL.md preview
--- name: linux-test description: Run integration tests that require Linux (full loopback range 127.x.x.x) via Docker. Use when a test fails on macOS with "Can't assign requested address" or when the user says "/linux-test". user_invocable: true license: LGPL-3.0 --- # Linux Integration Test Runner ## Overview 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. ## Arguments - **Test name only:** `/freenet:linux-test run_delegate_messaging_e2e` — auto-wraps as `cargo test` with `--nocapture` - **Full cargo args:** `/freenet:linux-test cargo test -p freenet -- test_name` — passed through directly - **No args:** Show usage help and list known Linux-required tests ## Known Linux-Required Tests These 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` | ## Step 1: Parse Arguments Determine the command to run inside Docker: - **No arguments provided:** Display the usage help below and stop. ``` 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) ``` - **Starts with `cargo`:** Use arguments as-is. Append `-- --nocapture` if no `--` separator is present. - **Just a test name:** Map to the appropriate cargo test command: - If the test name matches a known test above, use the correct package. - Otherwise, default to: `cargo test -p freenet --test <name> -- --nocapture` - For `freenet-ping-app` tests: `cargo test -p freenet-ping-app --test <name> -- --nocapture` ## Step 2: Ensure Docker Image Exists ```bash # Check if the image exists docker image inspect freenet-test-runner >/dev/null 2>&1 ``` If the image does NOT exist, build it: ```bash 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)..." ## Step 3: Run the Test Execute the test using `docker/test-runner/run.sh`: ```bash 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). ## Step 4: Report Results After the test completes: - **If exit code is 0:** Report success with a summary of the output (test count, time taken). - **If exit code is non-zero:** Report failure. Show the relevant error output (last ~50 lines). Look for panic messages, assertion failures, or compilation errors and highlight them. ## Notes - The first run after building the image will compile from scratch (~10-15 min). Subsequent runs use cached builds via Docker volumes. - To reset cached builds: `docker volume rm freenet-test-build freenet-test-target freenet-test-cargo` - Source is mounted read-only; the container rsyncs to a build volume for native Linux filesystem speed.
Versions
The database has no other skills named linux-test.
Database snapshot: 13.11.2026 · package version d2ebd9187cb8 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 98integration-tests
Use when running integration tests in the VS Code repo. Covers scripts/test-integration.sh (macOS/Linux) and scripts/test-integration.bat (Windows), their supported arguments for filtering, and the difference between node.js integration tests and extension host tests. - 98integration-tests
Use when running integration tests in the VS Code repo. Covers scripts/test-integration.sh (macOS/Linux) and scripts/test-integration.bat (Windows), their supported arguments for filtering, and the difference between node.js integration tests and extension host tests. - 100bash-linux
Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems. - 100bash-linux
Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems. - 95bash-linux
Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems. - 100e2e-test
Run and debug Flutter E2E integration tests that exercise the real app against a local Docker backend (no mocks). Use when running E2E tests, debugging failures, or working on the local harness.