E81001: missing expected output file for test case
What went wrong
A commandline_arg_{id}.txt file exists but no matching expected_case_{id}.txt. Parameterized tests require both files with matching {id}.
Worked examples
Compilable examples demonstrating this error and the correct fix:
- ek9 -q 953 (How do @Test programs work with command-line arguments...)
File naming pattern
Each commandline_arg_{id}.txt pairs with the expected_case_{id}.txt of the same {id}. For instance, a dev/ directory holding commandline_arg_hello.txt but no expected_case_hello.txt is this error.
How to fix it
- Capture expected output: `ek9 -r tests.ek9 $(cat commandline_arg_{id}.txt) > expected_case_{id}.txt`
- Or create manually: `touch dev/expected_case_{id}.txt`
- Or rename if typo (check -E2 for fuzzy suggestions)
- Or remove orphan commandline file if test isn't needed
See also
Examples
Every example is compiled by the EK9 compiler: the first fails exactly as captioned, the others fix it.
Fails with E81001: missing expected output file for test case - reported by the test runner, not the compiler, when ek9 -t greeting.ek9 runs in this project.
bad/greeting.ek9
#!ek9 defines module error.e81001.bad defines function greeting() as pure -> name as String <- result as String: `Hello, ${name}`
bad/dev/tests.ek9
#!ek9 defines module error.e81001.bad.tests references error.e81001.bad::greeting defines program @Test GreetingCases() -> name as String stdout <- Stdout() greeted <- greeting(name) stdout.println(greeted) assert greeted == `Hello, ${name}`
bad/dev/commandline_arg_simple.txt
EK9
$ ek9 -t greeting.ek9
ℹ️ Found 1 test:
1 assert (unit tests with assertions)
Executing 1 test...
❌ FAIL error.e81001.bad.tests::GreetingCases [Assert] (nms)
Test configuration error: missing expected_case_simple.txt
Summary: 0 passed, 1 failed (1 total)
Types: 1 assert
Duration: nms
ek9: tests failed (exit 11)
E81001: missing expected output file for test case
missing expected_case_simple.txt
See: ek9 -h E81001
Fixed: Each commandline_arg_simple.txt has its expected_case_simple.txt
good/greeting.ek9
#!ek9 defines module error.e81001.good defines function greeting() as pure -> name as String <- result as String: `Hello, ${name}`
good/dev/tests.ek9
#!ek9 defines module error.e81001.good.tests references error.e81001.good::greeting defines program @Test GreetingCases() -> name as String stdout <- Stdout() greeted <- greeting(name) stdout.println(greeted) assert greeted == `Hello, ${name}`
good/dev/commandline_arg_simple.txt
EK9
good/dev/expected_case_simple.txt
Hello, EK9
$ ek9 -t greeting.ek9
ℹ️ Found 1 test:
1 parameterized_hybrid (parameterized with assertions)
Executing 1 test...
✅ PASS error.e81001.good.tests::GreetingCases [Param:simple] (nms)
Summary: 1 passed, 0 failed (1 total)
Types: 1 parameterized_hybrid
Duration: nms