#!/bin/sh if test $Argc -lt 1 { echo 'Specify binary to run as the first argument' exit 1 } for _tin in [$(TEST_DIR)/*.in] { setglobal _t = $[echo $_tin | sed -e 's/.in$//] $1 $_t.in $_t.out if test $Status -ne 0 { echo "Test: $_t failed, output:" cat $_t.out rm $_t.out exit 1 } if test -f $_t.res { diff -s $_t.out $_t.res -u 2>/dev/null if test $Status -ne 0 { rm $_t.out echo "Test: $_t output missmatch" exit 1 } } rm $_t.out } if test $Argc -gt 2 { $3 $(TEST_DIR)/generate.out diff -s $(TEST_DIR)/generate.out $(TEST_DIR)/generate.res -u 2>/dev/null if test $Status -ne 0 { rm $(TEST_DIR)/generate.out echo "Test: generate.res output missmatch" exit 1 } rm $(TEST_DIR)/generate.out } if test $Argc -gt 3 { rm /tmp/_ucl_test_schema.out ||true for i in [$(TEST_DIR)/schema/*.json] { setglobal _name = $[basename $i] printf "running schema test suite $_name... " cat $i | $4 >> /tmp/_ucl_test_schema.out && shell { echo "OK" } || shell { echo "Fail" } } } sh -c "xz -c < /dev/null > /dev/null" if test $Status -eq 0 -a $Argc -gt 1 { echo 'Running speed tests' for _tin in [$(TEST_DIR)/*.xz] { echo "Unpacking $_tin..." xz -cd < $_tin > ${TEST_DIR}/test_file # Preread file to cheat benchmark! cat $(TEST_DIR)/test_file > /dev/null echo "Starting benchmarking for $_tin..." $2 $(TEST_DIR)/test_file if test $Status -ne 0 { echo "Test: $_tin failed" rm $(TEST_DIR)/test_file exit 1 } rm $(TEST_DIR)/test_file } }