Fix 2005/giljade/test.sh
The script did not check if all versions could be compiled, just that 180 versions were found. Now it reports an error if not all versions (180) are found (exit code 1) or if any of the versions failed to compile (exit code 2). Otherwise it returns 0, success. The regexp for finding errors is '[^-]error' because the CFLAGS contain the option -Wno-error which would be a false positive. Now if any version fails to compile it will let the user know. Also in that case out.count is kept so that one can look at the problem (it also tells one how to show the results with grep(1) and even notes that if they want to report it or try and fix it and open a GitHub pull request that they're welcome to do so). The giljade.c file's last line now ends on the column that it used to before the fix of the test suite mode working. This does not affect the output of the program and the fix did not either but it feels a bit better this way anyway.
This commit is contained in:
1 parent
43897789a1
commit
97af1f03bc
2 files changed
+38
-7
No files matched your search
@@ -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<N;E=E+6){ H()o(1048560,<<,>>,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-1:R)=* Q=*R=59):(*R =M,R[-1]=T), a=2);}}j?(*_
|
||||
++=j-2?V:10, R):(R=_-1);} }R[-1]=T;*R= M;*_++=10;F(
|
||||
R=D;putchar( *R)&&_>++R;) ;}}};}
|
||||
R =D ; putchar ( * R) && _ > ++R ; ) ; } } } ; }
|
||||
+36
-5
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user