Skip to content
Skills Library
Programming · Testing

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".

Licence
LGPL
Last repository change
26.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 26.10.2026, without references to retired models or APIs.

Licence

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

Canor when the user says
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

  1. Overview
  2. Arguments
  3. Known Linux-Required Tests
  4. Step 1: Parse Arguments
  5. Step 2: Ensure Docker Image Exists
  6. Step 3: Run the Test
  7. Step 4: Report Results
  8. Notes
Original SKILL.md headings · 93 lines, 462 words
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.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.