1.7 KiB
1.7 KiB
EPOD acceptance tests (for the EPOD server developer)
Small test set for the two server changes that the harness work asked for (details: docs/epod-syntax-hint.md, docs/epod-lock-leak.md)
and for the parallel-call behavior (harness/loadtest.py numbers). Standard library only, Python 3.9+, no harness code needed.
It uses probe objects ZEPODT_* in $TMP on a test system.
cd epod_tests
export MCP_URL=http://127.0.0.1:3000/mcp MCP_TOKEN=... # the MCP server
export A4H_URL=http://localhost:50000 A4H_USER=... A4H_PASSWORD=... # only for the cleanup (ADT deletion); without it the tests list the probe objects
python3 run_tests.py # all; --only T1 T3 for some
| test | passes when | state of the server on 2026-10-06 |
|---|---|---|
| T1 syntax_hint | a rejected write (TYPE c LENGTH 4 in a method signature) returns syntax messages with a line, not only "save operation failed" |
FAIL expected (not implemented; the harness proxy adds abaplint messages) |
| T2 no_lock_after_kill | a client killed with SIGKILL during a write (4 delays) leaves no lock: the next write works | PASS (not reproducible on A4H) |
| T3 parallel_reads | 6 clients search + syntax check in parallel without Concurrent call detected |
PASS |
| T4 parallel_writes | 3 clients create + write in parallel without Concurrent call detected |
FAIL expected (the shared connection; 15 to 50 lock hits per 45 s in the harness load test) |
| T5 lock_error_text | informational | PASS |
A change in the server is done when T1 and T4 pass and T2 and T3 stay green. T1 accepts any answer that carries a line number or a syntaxCheck object with messages (the proxy format is in docs/epod-syntax-hint.md).