diff --git a/2005/giljade/giljade.c b/2005/giljade/giljade.c index 5bf491432..d88b8366b 100644 --- a/2005/giljade/giljade.c +++ b/2005/giljade/giljade.c @@ -18,7 +18,7 @@ (B[h]=N-B,N= N+6);}main(Z,Y )char**Y;{char*U=Z ; int**w=Y; ;;F(_=A=D+6666,A[fread(A,1,3333,fopen (__FILE__, "r"))]=0;*++ _;h||(*_=V)) -*_-59|_[1]-* _||(h&&(*_=+ 35),h---2||(_[9]=V));;F(_ +*_-59|_[1]-* _||(h&&(*_= +35),h---2||(_[9]=V));;F(_ =A;*_;_++)10 -*_&&*_-V&&( *_-92)&&(k[q]=isalnum(l[q ]=*_),q++);M =47;*(E=N-6) =64;E[1]=289;E[2]=270336; F(E[3]=32782 ;E>,4,>>4, @@ -46,4 +46,4 @@ e==1){F(r=A= l+d;35-*A;++ A)*A-M&&*A-T ||U-1&&(*A=V 13499);}t=d+ 9;_[-1]=l[++ d];}a-1|+j-2 ||(R-Q<3?(*( Q++R;) ;}}};} +R =D ; putchar ( * R) && _ > ++R ; ) ; } } } ; } diff --git a/2005/giljade/test.sh b/2005/giljade/test.sh index 7611ef025..22220d3fc 100755 --- a/2005/giljade/test.sh +++ b/2005/giljade/test.sh @@ -12,23 +12,54 @@ fi make CC="$CC" all >/dev/null || exit 1 +# clear screen after compilation so that only the test is shown +clear + +# binary is giljade GILJADE="giljade" + +# assume we will succeed EXIT_CODE=0 +# delete temporary files first to make sure that they're clean rm -f out out.count +# redirect stdout to 'out' so that we can run the test suite of giljade ./"$GILJADE" > out -./"$GILJADE" out | tee out.count | grep '^Line' +# here we want to show only the lines matching the regexp '^Line' but write +# everything to out.count for checking (after running it all) for errors and how +# many versions were found. +./"$GILJADE" out 2>&1 | tee out.count | grep '^Line' + +# there should be 180 lines matching the regexp '^Line'. COUNT="$(grep -c '^Line' out.count)" if [[ "$COUNT" != 180 ]]; then - echo "FAIL: expected 180 versions, got $COUNT" 1>&2 + # if we failed to get exactly 180 versions there is a problem + echo "FAIL: Expected 180 versions, got $COUNT" 1>&2 EXIT_CODE=1 +elif [[ "$(grep -c '[^-]error' out.count)" -ne 0 ]]; then + # we have to check for '[^-]error' because the CFLAGS contain '-Wno-error' + # which would be a false positive. + echo "FAIL: Error compiling one or more versions!" 1>&2 + echo "Try the following command to find out what problems occurred:" 1>&2 + echo 1>&2 + echo " grep -C5 -E '[^-]error' out.count" 1>&2 + echo 1>&2 + echo "and feel free to report or fix it and make a GitHub pull request." 1>&2 + EXIT_CODE=2 else - echo "Found all 180 versions!" 1>&2 + # all good: every version could be compiled + echo "Found and compiled all 180 versions!" 1>&2 + # set EXIT_CODE to 0 even though it should be already + EXIT_CODE=0 fi -rm -f out out.count +# delete temporary files but only if no failure +if [[ "$EXIT_CODE" = 0 ]]; then + rm -f out out.count +fi + +# exit :-) exit "$EXIT_CODE" -