aboutsummaryrefslogtreecommitdiff
path: root/Practical2/tester/test.sh
blob: 693ceda52a15d5fab9b3dec95b4d1d54c7a9e420 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
java="/usr/lib/jvm/java-8-openjdk-amd64/bin/java"

# Java
#dir="$(dirname $0)/../out/production/Practical2"
#samples="../../../tester/samples"
#cmd="$java nl.camilstaps.cs.Main"

# C
dir="$(dirname $0)/../c"
samples="../tester/samples"
cmd="./checkout"

failed=0

cd "$dir"
for tc in "$samples/"*.in; do
    answer=$(cat ${tc/in/out})
    header=$(head -n1 "$tc" | tr -d '\n')
    echo -n "Running $(basename $tc) $(printf '%-12s' "($answer ")$(printf '%-12s' "/ $header)") ... "
    time_start=$(($(date +%s%N)/1000000))
    result=$(eval "cat '$tc' | $cmd")
    time_end=$(($(date +%s%N)/1000000))
    time=`expr $time_end - $time_start`
    if [ $result != $answer ]; then
        echo "failure ($time ms)."
        failed=$(($failed+1))
    else
        echo "success ($time ms)."
    fi
done
cd - >/dev/null

if [ $failed -eq 0 ]; then
    echo "All tests passed."
elif [ $failed -eq 1 ]; then
    echo "1 test failed."
else
    echo "$failed tests failed."
fi