1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-03 14:41:21 +00:00
QB64-PE/tests/dist_tests.sh
Matthew Kilgore 55a4d1af1c Verify Windows executable has version information
windres has a handy feature of allowing us to feed it an executable and
it will give an error code depending on whether that executable has a
resource section or not. We can use that feature to create a quick test
to verify the distributable has the resource information on it.
2022-05-06 13:42:35 -04:00

66 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
# Arg 1: Dist location
PREFIX="dist"
# Get absolute paths for everything since we're going to cd into the distribution directory
ROOT=$(pwd)
TEST_CASES="$ROOT/tests/dist"
RESULTS_DIR="$ROOT/tests/results/$PREFIX"
mkdir -p "$RESULTS_DIR"
# Move into distribution location
cd $1
# Specific steps for each platform
case "$2" in
win)
# Verify that the Resource information was correctly applied
# windres returns an error if the exe has no resource section
windresResult=$($ROOT/internal/c/c_compiler/bin/windres.exe -i ./qb64.exe)
assert_success_named "Windows Resource Section" printf "\n$windresResult\n"
;;
lnx)
./setup_lnx.sh "dont_run" 1>"$RESULTS_DIR/linux-setup.txt"
assert_success_named "Linux setup" cat "$RESULTS_DIR/linux-setup.txt"
;;
osx)
./setup_osx.command "." "dont_run" 1>"$RESULTS_DIR/osx-setup.txt"
assert_success_named "OSX setup" cat "$RESULTS_DIR/osx-setup.txt"
;;
esac
show_failure()
{
cat "$RESULTS_DIR/$1-compile_result.txt"
cat "$RESULTS_DIR/$1-compilelog.txt"
}
for basFile in $TEST_CASES/*.bas
do
test=$(basename $basFile .bas)
outputExe="$RESULTS_DIR/$test-output"
TESTCASE=$test
./qb64 -x "$TEST_CASES/$test.bas" -o "$outputExe" 1>$RESULTS_DIR/$test-compile_result.txt
ERR=$?
cp ./internal/temp/compilelog.txt $RESULTS_DIR/$test-compilelog.txt
(exit $ERR)
assert_success_named "compile" "Compilation Error:" show_failure $test
test -f "$outputExe"
assert_success_named "exe exists" "output.exe does not exist!" show_failure $test
testResult=$("$outputExe" 2>&1)
assert_success_named "run" "Execution Error:" echo "$testResult"
[ "$testResult" == "$(cat $TEST_CASES/$test.result)" ]
assert_success_named "result" "Result is wrong:" echo "$testResult"
done