mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-06 03:30:23 +00:00
4a8a7ce594
Having two separate files for the compile output is just too confusing, and it adds an extra file users need to look at and give us when there are issues. This change simply makes qb64.bas send both the stdout and stderr output to compilelog.txt. Fixes: #61
72 lines
2.1 KiB
Bash
Executable file
72 lines
2.1 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
|
|
|
|
# Verify that ./internal/temp/ is empty save for temp.bin
|
|
# xargs trims the front whitespace on OSX
|
|
tempCount=$(find ./internal/temp/ -type f | wc -l | xargs)
|
|
[ "$tempCount" == "1" ]
|
|
assert_success_named "./Internal/temp file count" echo "Temp has too many files: $tempCount"
|
|
|
|
# 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_if_exists ./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
|