#!/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