truelight@9461: #!/bin/sh truelight@9461: rubidium@9470: if ! [ -f ai/regression/regression.nut ]; then truelight@9461: echo "Make sure you are in the root of OpenTTD before starting this script." truelight@9461: exit 1 truelight@9461: fi truelight@9461: rubidium@9470: cp ai/regression/regression.nut ai/regression/main.nut truelight@9461: truelight@9481: params="" truelight@9663: gdb="" truelight@9481: if [ "$1" != "-r" ]; then glx@9704: params="-snull -mnull -vnull:ticks=10000" truelight@9481: fi truelight@9663: if [ "$1" = "-g" ]; then truelight@9663: gdb="gdb --ex run --args " truelight@9461: fi truelight@9663: if [ -n "$gdb" ]; then truelight@9663: $gdb ./openttd -a regression -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav truelight@9663: else truelight@9663: ./openttd -a regression -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav 2>tmp.stderr | awk '{ gsub("0x\\(nil\\)", "0x00000000", $0); print $0; }' > tmp.regression truelight@9523: fi truelight@9663: truelight@9663: if [ -z "$gdb" ]; then truelight@9663: res="`diff -u ai/regression/regression.txt tmp.regression`" truelight@9663: if [ -z "$res" ]; then truelight@9663: echo "Regression test passed!" truelight@9663: else truelight@9663: echo "Regression test failed! Difference:" truelight@9663: echo "$res" truelight@9663: fi truelight@9663: echo "" truelight@9663: stderr="`cat tmp.stderr`" truelight@9663: if [ -n "$stderr" ]; then truelight@9663: echo "OpenTTD gave this on stderr:" truelight@9663: echo "$stderr" truelight@9663: fi truelight@9663: echo "" truelight@9663: echo "Regression test done" truelight@9663: fi truelight@9461: truelight@9523: rm -f ai/regression/main.nut tmp.stderr rubidium@9470: truelight@9464: if [ "$1" != "-k" ]; then truelight@9464: rm -f tmp.regression truelight@9464: fi