From 28f438239da2e42e497b6961270fec664160e028 Mon Sep 17 00:00:00 2001 From: koba-e964 <3303362+koba-e964@users.noreply.github.com> Date: Tue, 26 Nov 2019 01:07:59 +0900 Subject: [PATCH] Checker script checks the equality of output --- check-test-mls.sh | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/check-test-mls.sh b/check-test-mls.sh index 67bd207..1083fa0 100755 --- a/check-test-mls.sh +++ b/check-test-mls.sh @@ -1,20 +1,34 @@ success=0 total=0 + +ARCH=${ARCH:-x86} + +NECESSARY_FILES="assets/stub.c assets/${ARCH}/libmincaml.S" + if cargo build --release; then - for i in test/*.ml; do - echo "---- ${i} ----" - cat ${i} - if cargo run --release -q -- ${i} ${i}.asm >/dev/null; then - echo "[OK] $i" - cat ${i}.asm - echo; echo - success=`expr $success + 1` - else - echo "[Error] $i" - fi - total=`expr $total + 1` - done - echo "Success rate: $success/$total" + for i in test/*.ml; do + echo "---- ${i} ----" + if cargo run --release -q -- ${i} ${i}.asm >/dev/null 2>&1; then + if cc ${i}.asm ${NECESSARY_FILES} -o ${i}.x; then + if ./${i}.x >${i}.out; then + # testrun ml + ocaml ${i} >${i}.ans + if diff ${i}.out ${i}.ans; then + echo "[OK] $i" + success=$((success+1)) + else + echo "[Output Error] ${i}" + fi + fi + else + echo "[Link Error] $i" + fi + else + echo "[Compile Error] $i" + fi + total=$((total+1)) + done + echo "Success rate: $success/$total" else echo "build error" exit 1