X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tests%2Fregression%2FTest.sh;h=bb42e65fdb73a5f1594e1459f1d3827b06430b1a;hb=20b3a23bede272aa58b85dad9b0d7f927a51ff75;hp=7c2b353d37acb1953e7544978efc7d8b1eff92ce;hpb=b33675f9026beff6cff74869e98ff9efe15fcaff;p=cacao.git diff --git a/tests/regression/Test.sh b/tests/regression/Test.sh index 7c2b353d3..bb42e65fd 100644 --- a/tests/regression/Test.sh +++ b/tests/regression/Test.sh @@ -2,6 +2,40 @@ JAVA=$1 TEST=$2 +SRCDIR=$3 + +# +# test which classlibrary was used +# depending on whether classpath or openjdk class library was used we may expect different results from the tests, this may e.g. +# by simple things like intentation when printing stack traces or even more subtile stuff ... +# +$JAVA -XX:+PrintConfig 2>&1 | grep gnu.classpath.boot.library.path: > /dev/null +if [ $? -eq "0" ]; then +IS_CLASSPATH=1 +POSTFIX="cp" +fi +$JAVA -XX:+PrintConfig 2>&1 | grep sun.boot.library.path > /dev/null +if [ $? -eq "0" ]; then +IS_OPENJDK=1 +POSTFIX="ojdk" +fi + +if [ -z $POSTFIX ]; then +echo "Warning: Could not detect classlibrary the java VM uses, assuming openJDK" +POSTFIX="ojdk" +fi + +# mostly classpath and openjdk deliver same results +REFERENCE_OUTPUT=$SRCDIR/$TEST.output +REFERENCE_2OUTPUT=$SRCDIR/$TEST.2output + +# if they do not exist, we try the postfixed versions +if [ ! -f $REFERENCE_OUTPUT ]; then +REFERENCE_OUTPUT=$SRCDIR/$TEST.output.$POSTFIX +fi +if [ ! -f $REFERENCE_2OUTPUT ]; then +REFERENCE_2OUTPUT=$SRCDIR/$TEST.2output.$POSTFIX +fi echo -n "$TEST: " @@ -9,38 +43,38 @@ $JAVA $TEST > $TEST.thisoutput 2>&1 if [ $? -eq "0" ]; then # no Error returned - if [ -f $TEST.2output ]; then + if [ -f $REFERENCE_2OUTPUT ]; then # Error should have been returned echo "OK, but wrong return value: $?" - head $TEST.output + head $TEST.thisoutput exit fi - cmp -s $TEST.output $TEST.thisoutput + cmp -s $REFERENCE_OUTPUT $TEST.thisoutput if [ $? -eq "0" ]; then echo "OK" else echo "FAILED" - diff $TEST.output $TEST.thisoutput | head + diff -u $REFERENCE_OUTPUT $TEST.thisoutput fi else # Error returned - if [ ! -f $TEST.2output ]; then + if [ ! -f $REFERENCE_2OUTPUT ]; then # No Error should have been returned echo "FAILED, but wrong return value: $?" head $TEST.this2output exit fi - cmp -s $TEST.2output $TEST.thisoutput + cmp -s $REFERENCE_2OUTPUT $TEST.thisoutput if [ $? -eq "0" ]; then echo "OK" else echo "FAILED" - diff $TEST.2output $TEST.thisoutput | head + diff -u $REFERENCE_2OUTPUT $TEST.thisoutput fi fi