Files
newt/scripts/test
2025-10-06 15:21:54 -07:00

49 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
SAMPLES=$(find playground/samples -name "*.newt")
# NCC="bun run newt.js"
NCC="node newt.js"
total=0
failed=0
for fn in tests/*.newt ; do
total=$((total + 1))
echo Test $fn
bn=$(basename $fn)
if [ -f ${fn}.golden ]; then
$NCC $fn -o out.js > tmp/${bn}.compile
else
# we've dropped support for compiling things without main for now.
$NCC $fn > tmp/${bn}.compile
fi
cerr=$?
if [ -f ${fn}.fail ]; then
if ! diff -q tmp/${bn}.compile ${fn}.fail; then
echo "Compile failure mismatch for $fn"
diff tmp/${bn}.comp ${fn}.fail
failed=$((failed + 1))
continue
fi
elif [ $cerr != "0" ]; then
echo Compile failed for $fn
failed=$((failed + 1))
cat tmp/${bn}.compile
continue
fi
# if there is a golden file, run the code and compare output
if [ -f ${fn}.golden ]; then
bun run out.js > tmp/${bn}.out
if [ $? != "0" ]; then
echo Run failed for $fn
failed=$((failed + 1))
continue
fi
if ! diff -q tmp/${bn}.out ${fn}.golden; then
echo "Output mismatch for $fn"
diff -q tmp/${bn}.out ${fn}.golden
failed=$((failed + 1))
fi
fi
done
echo "Total tests: $total"
echo "Failed tests: $failed"