diff options
Diffstat (limited to 'šola/p1/dn/tj.sh')
-rwxr-xr-x | šola/p1/dn/tj.sh | 92 |
1 files changed, 50 insertions, 42 deletions
diff --git a/šola/p1/dn/tj.sh b/šola/p1/dn/tj.sh index 4851ec6..ed9e510 100755 --- a/šola/p1/dn/tj.sh +++ b/šola/p1/dn/tj.sh @@ -6,51 +6,59 @@ d=$3 uspelih=0 napa=0 predolg=0 -ura=10s -find $2 -name 'Test[0-9]*.java' -or -name '*.in' | while read -r f -do - echo -n "$f ... " - uspeh=0 - if grep 'java$' <<<$f > /dev/null - then - stdout=`echo <(java $f)` - else - stdout=`echo <(java $1 < $f)` - fi - out=$(timeout $ura /usr/bin/time --quiet -f %E diff --ignore-trailing-space --side-by-side <(java `grep 'java$' <<<$f > /dev/null && echo $f || echo $1` <$f) `sed -e s/in$/out/ -e 's/Test\([0-9]\)/test\1/' -e s/java$/out/ <<<$f` 2>&1) && uspeh=1 - koda=$? - if [ $uspeh -eq 0 ] - then - if [ $koda -eq 124 ] +if [ x$URA = x ] +then + ura=5s +else + ura=$URA +fi +find $2 -name 'Test[0-9]*.java' -or -name '*.in' | +{ + while read -r f + do + echo -n "$f ... " + uspeh=0 + if grep 'java$' <<<$f > /dev/null then - predolg=$(($predolg+1)) - echo "PREKORAČEN ČAS $ura!" - if grep 'java$' <<<$f > /dev/null - then - true - else - echo "VHOD:" - tac $f | tac - fi + stdout=`echo <(java $f)` else - napa=$(($napa+1)) - echo "NAPAČEN IZHOD! Čas izvajanja: `tail -n1 <<<$out`" - if grep 'java$' <<<$f > /dev/null + stdout=`echo <(java $1 < $f)` + fi + out=$(timeout $ura /usr/bin/time --quiet -f %E diff --ignore-trailing-space --side-by-side <(java `grep 'java$' <<<$f > /dev/null && echo $f || echo $1` <$f) `sed -e s/in$/out/ -e 's/Test\([0-9]\)/test\1/' -e s/java$/out/ <<<$f` 2>&1) && uspeh=1 + koda=$? + if [ $uspeh -eq 0 ] + then + if [ $koda -eq 124 ] then - true + predolg=$(($predolg+1)) + echo "PREKORAČEN ČAS $ura!" + if grep 'java$' <<<$f > /dev/null + then + true + else + echo "VHOD:" + tac $f | tac + fi else - echo "VHOD:" - tac $f | tac + napa=$(($napa+1)) + echo "NAPAČEN IZHOD! Čas izvajanja: `tail -n1 <<<$out`" + if grep 'java$' <<<$f > /dev/null + then + true + else + echo "VHOD:" + tac $f | tac + fi + echo "IZHOD: Levo je vaš izhod, desno je pravilen izhod:" + head -n-1 <<<$out + grep 'java$' <<<$f > /dev/null && echo -e "PRIPOROČILO: Če DN zahteva razrede (kot recimo DN06), morate imeti v trenutnem direktoriju PREVEDENE .class datoteke vaših zahtevanih razredov. Če so v katerem drugem direktoriju, morate nastaviti CLASSPATH.\nPoleg tega se lahko zgodi, da v direktoriju s testi obstaja TestSkupno.java (kot recimo DN07), ki ga je potrebno prevesti v z javac." fi - echo "IZHOD: Levo je vaš izhod, desno je pravilen izhod:" - head -n-1 <<<$out - grep 'java$' <<<$f > /dev/null && echo -e "PRIPOROČILO: Če DN zahteva razrede (kot recimo DN06), morate imeti v trenutnem direktoriju PREVEDENE .class datoteke vaših zahtevanih razredov. Če so v katerem drugem direktoriju, morate nastaviti CLASSPATH.\nPoleg tega se lahko zgodi, da v direktoriju s testi obstaja TestSkupno.java (kot recimo DN07), ki ga je potrebno prevesti v z javac." + else + uspelih=$(($uspelih+1)) + echo "USPELO! Čas izvajanja: `tail -n1 <<<$out`" fi - else - uspelih=$(($uspelih+1)) - echo "USPELO! Čas izvajanja: `tail -n1 <<<$out`" - fi -done -echo "uspešnih testov: $uspelih" -echo "napačnih izhodov: $napa" -echo "prekoračen čas $ura: $predolg" + done + echo "uspešnih testov: $uspelih" + echo "napačnih izhodov: $napa" + echo "prekoračen čas $ura: $predolg" +} |