94 lines
1.6 KiB
Bash
94 lines
1.6 KiB
Bash
EXE=$1
|
|
CPU=$2
|
|
TARGET=$3
|
|
LOAD_P=$4
|
|
TEST_P=$5
|
|
BENCHMARK_P=$6
|
|
MAKE_FLAGS=$7
|
|
BOOT_FLAGS=$8
|
|
VARIANT=$9
|
|
|
|
PREFIX=misc/integration/results-$CPU$VARIANT
|
|
|
|
mkdir -p $PREFIX
|
|
|
|
VM_LOG=$PREFIX/vm.log
|
|
BOOT_LOG=$PREFIX/boot.log
|
|
LOAD_LOG=$PREFIX/load.log
|
|
TEST_LOG=$PREFIX/test.log
|
|
BENCHMARK_LOG=$PREFIX/benchmark.log
|
|
|
|
echo "Output files:"
|
|
echo "VM compilation: $VM_LOG"
|
|
echo "Bootstrap: $BOOT_LOG"
|
|
echo "Load everything: $LOAD_LOG"
|
|
echo "Unit tests: $TEST_LOG"
|
|
echo "Benchmarks: $BENCHMARK_LOG"
|
|
|
|
IMAGE=factor.image
|
|
|
|
echo
|
|
echo
|
|
echo
|
|
|
|
echo "Compiling VM"
|
|
${MAKE-make} clean $TARGET $MAKE_FLAGS >$VM_LOG </dev/null
|
|
|
|
if [ "$?" -ne 0 ]; then
|
|
echo "VM compile failed"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Bootstrap"
|
|
rm -f $IMAGE
|
|
|
|
$EXE -i=boot.$CPU.image \
|
|
-no-user-init \
|
|
$BOOT_FLAGS \
|
|
-output-image=$IMAGE >$BOOT_LOG </dev/null
|
|
|
|
if [ ! -e "factor.image" ]; then
|
|
echo "Bootstrap failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Load all modules; run tests
|
|
if [ "$LOAD_P" = "yes" ]; then
|
|
echo "Testing loading of all modules"
|
|
|
|
echo "USE: tools.browser load-everything USE: memory save USE: system 123 exit" \
|
|
>/tmp/factor-$$
|
|
|
|
$EXE -i=$IMAGE \
|
|
/tmp/factor-$$ \
|
|
-run=none \
|
|
>$LOAD_LOG </dev/null
|
|
|
|
if [ "$?" -ne 123 ]; then
|
|
echo "Load-everything failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Check for parser notes
|
|
grep "automatically using" $LOAD_LOG
|
|
|
|
if [ "$?" -eq 0 ]; then
|
|
echo "Missing USE: declarations"
|
|
# exit 1
|
|
fi
|
|
fi
|
|
|
|
# Run unit tests
|
|
if [ "$TEST_P" = "yes" ]; then
|
|
echo "Running all unit tests"
|
|
|
|
$EXE -i=$IMAGE "-e=test-all" -run=none >$TEST_LOG </dev/null
|
|
fi
|
|
|
|
# Run benchmarks
|
|
if [ "$BENCHMARK_P" = "yes" ]; then
|
|
echo "Running all benchmarks"
|
|
|
|
$EXE -i=$IMAGE "-run=benchmark" >$BENCHMARK_LOG </dev/null
|
|
fi
|