一键导入
test-amiga
Test compiled Amiga binaries using vamos (virtual AmigaOS runtime). Verifies correct execution and output comparison. Use after a successful build.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Test compiled Amiga binaries using vamos (virtual AmigaOS runtime). Verifies correct execution and output comparison. Use after a successful build.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Capture a lesson learned from a porting session and route it to the right enforcement mechanism. Use when a bug, mistake, or process failure occurs that should be prevented in future sessions.
Publish a news entry to the amiport site. Appends to site/data/news.json, validates, deploys via site-manager, and clears the activity cache. Use when announcing a release, project update, milestone, or behind-the-scenes note.
Analyze C source code for Amiga portability issues. Scans headers, system calls, and language features to produce a structured porting report. Use when starting a new port or evaluating whether a project can be ported.
Transform C source code for Amiga compatibility. Replaces POSIX calls with Amiga equivalents or posix-shim wrappers. Use after analyze-source has identified issues.
Dispatch multiple ports from the catalog in parallel using specialized agents. Runs the same pipeline stages as /port-project but overlaps them across ports for ~3x throughput.
Port an entire C project to AmigaOS. Runs the full pipeline — analyze, transform, build, test, package. Use to port a new project from scratch.
| name | test-amiga |
| description | Test compiled Amiga binaries using vamos (virtual AmigaOS runtime). Verifies correct execution and output comparison. Use after a successful build. |
| allowed-tools | Bash, Read, Write |
You are testing a compiled Amiga binary using vamos from the amitools package.
vamos installed (pip install amitools)which vamosvamos <binary> [args]# Basic execution
vamos ./program
# With arguments
vamos ./program -arg1 -arg2 inputfile
# With Amiga volume assignments
vamos -V "Work:$(pwd)" ./program
# Capture output for comparison
vamos ./program > amiga_output.txt 2>&1
# With a timeout (prevents hangs from blocking on stdin or infinite loops)
timeout 30 vamos ./program
# Feeding stdin
echo "input data" | vamos ./program
# Or from file:
vamos ./program < input.txt
AmigaOS uses different exit codes than POSIX. vamos passes these through:
| Amiga Constant | Value | Meaning | POSIX Equivalent |
|---|---|---|---|
RETURN_OK | 0 | Success | EXIT_SUCCESS (0) |
RETURN_WARN | 5 | Warning (non-fatal) | No direct equivalent |
RETURN_ERROR | 10 | Error | EXIT_FAILURE (1) |
RETURN_FAIL | 20 | Fatal error | EXIT_FAILURE (1) |
When comparing exit codes:
vamos -v for verbose output. Common causes: unsupported library call, bad memory access at address 0.timeout to detect this:
timeout 10 vamos ./program
# Exit code 124 means timeout was reached
0x00000000 usually means a NULL was returned and not checked.Some programs (like cat, wc without file args) read from stdin and will hang in vamos if not given input:
# Provide input via pipe
echo "test input" | vamos ./program
# Or redirect from file
vamos ./program < testfile.txt
# Or use timeout to detect the hang
timeout 5 vamos ./program
For CLI utilities, compare output against the native version:
# Run native version
./program_native testfile > expected.txt 2>&1
native_exit=$?
# Run Amiga version
vamos ./program testfile > actual.txt 2>&1
amiga_exit=$?
# Compare output
diff expected.txt actual.txt
# Compare exit codes (accounting for Amiga conventions)
echo "Native exit: $native_exit, Amiga exit: $amiga_exit"
When comparing, allow for these expected differences:
# Test Results: <program>
## Environment
- vamos version: X.Y.Z
- Target: AmigaOS 3.x / 68020
## Tests
| Test Case | Input | Expected | Actual | Exit Code | Status |
|-----------|-------|----------|--------|-----------|--------|
| ... | ... | ... | ... | ... | PASS/FAIL |
## Summary
- Tests passed: N/M
- Overall: PASS/FAIL
vamos supports:
vamos does NOT support:
If the program requires unsupported libraries, note this and suggest FS-UAE testing instead.
For Category 3+ (Console UI, Network) ports, visual verification tests run as a separate FS-UAE pass from functional tests:
test-fsemu-cases.txt -- run with make test-fsemu TARGET=ports/<name>test-fsemu-visual-cases.txt -- run with make test-fsemu TARGET=ports/<name> VISUAL=1The --visual flag tells scripts/test-fsemu.sh to use the visual test file and enable ANSI capture via the forked FS-UAE (~/Developer/fs-uae/). Host-side scripts/verify-screen.py uses pyte to reconstruct the terminal screen.
Never mix functional and visual tests in one suite. Resource exhaustion at ~13 ITESTs is a hard wall. See ADR-024 for details.