From a2e93c6087ac2d7af4a8cf07f816d0072b510e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 25 Dec 2023 21:46:06 +0100 Subject: dn08, tj.sh fixes subshell scope --- "\305\241ola/p1/dn/tj.sh" | 92 +++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 42 deletions(-) (limited to 'šola/p1/dn/tj.sh') diff --git "a/\305\241ola/p1/dn/tj.sh" "b/\305\241ola/p1/dn/tj.sh" index 4851ec6..ed9e510 100755 --- "a/\305\241ola/p1/dn/tj.sh" +++ "b/\305\241ola/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" +} -- cgit v1.2.3