Files
lean4/tests/pkg/test_extern/run_test
Garmelon 6a2a884372 chore: migrate pkg tests (#12889)
Also refactor util.sh in the process, so test scripts become easier to
write (inspired in part by lake's test suite).
2026-03-11 18:55:46 +00:00

37 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
source ../../env_test.sh
# We need a package test because we need multiple files with imports.
# Currently the other package tests all succeed,
# but here we need to check for a particular error message.
# This is just an ad-hoc text mangling script to extract the error message
# and account for some OS differences.
# Ideally there would be a more principled testing framework
# that took care of all this!
rm -rf .lake/build
# TODO Use and/or emulate the helper functions from util.sh?
# Function to process the output
verify_output() {
awk '/error: .*lean:/, /error: Lean exited/' |
# Remove system-specific path information from error
sed 's/error: .*TestExtern.lean:/error: TestExtern.lean:/g' |
sed '/error: Lean exited/d'
}
${LAKE:-lake} build 2>&1 | verify_output > produced.txt
# Compare the actual output with the expected output
if diff --strip-trailing-cr -q produced.txt expected.txt > /dev/null; then
echo "Output matches expected output."
rm produced.txt
exit 0
else
echo "Output differs from expected output:"
diff --strip-trailing-cr produced.txt expected.txt
rm produced.txt
exit 1
fi