summaryrefslogtreecommitdiffstats
path: root/šola/p1/dn/tj.sh
diff options
context:
space:
mode:
Diffstat (limited to 'šola/p1/dn/tj.sh')
-rwxr-xr-xšola/p1/dn/tj.sh92
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"
+}