bin/ai/regression/run.sh
author truelight
Fri, 19 Oct 2007 11:32:20 +0000
branchnoai
changeset 9711 c8b427215c9d
parent 9704 197cb8c6ae17
child 9823 0b7f816cf46f
permissions -rwxr-xr-x
(svn r11295) [NoAI] -Change [API CHANGE]: put Engine things in AIEngine, and rename functions as such. Most noticable: FindBestXXXVehicle -> FineBestXXXEngine
9461
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     1
#!/bin/sh
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     2
9470
4593c953a276 (svn r9308) [NoAI] -Change: make the regression scripts run without any user intervention; not manual enabling and disabling of AIs
rubidium
parents: 9469
diff changeset
     3
if ! [ -f ai/regression/regression.nut ]; then
9461
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     4
	echo "Make sure you are in the root of OpenTTD before starting this script."
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     5
	exit 1
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     6
fi
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     7
9470
4593c953a276 (svn r9308) [NoAI] -Change: make the regression scripts run without any user intervention; not manual enabling and disabling of AIs
rubidium
parents: 9469
diff changeset
     8
cp ai/regression/regression.nut ai/regression/main.nut
9461
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
     9
9481
39ba1c349d3d (svn r9330) [NoAI] -Add: added -r as param for regression run.sh script to start the game, so you can check if it build what we expected him to for yourself
truelight
parents: 9470
diff changeset
    10
params=""
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    11
gdb=""
9481
39ba1c349d3d (svn r9330) [NoAI] -Add: added -r as param for regression run.sh script to start the game, so you can check if it build what we expected him to for yourself
truelight
parents: 9470
diff changeset
    12
if [ "$1" != "-r" ]; then
9704
197cb8c6ae17 (svn r11221) [NoAI] -Sync: with trunk r11145:11220
glx
parents: 9663
diff changeset
    13
	params="-snull -mnull -vnull:ticks=10000"
9481
39ba1c349d3d (svn r9330) [NoAI] -Add: added -r as param for regression run.sh script to start the game, so you can check if it build what we expected him to for yourself
truelight
parents: 9470
diff changeset
    14
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    15
if [ "$1" = "-g" ]; then
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    16
	gdb="gdb --ex run --args "
9461
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
    17
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    18
if [ -n "$gdb" ]; then
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    19
	$gdb ./openttd -a regression -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    20
else
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    21
	./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
9523
cacf2f05f79b (svn r9443) [NoAI] -Fix: make regression now shows stderr output at the bottom (else it got lost really fast)
truelight
parents: 9481
diff changeset
    22
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    23
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    24
if [ -z "$gdb" ]; then
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    25
	res="`diff -u ai/regression/regression.txt tmp.regression`"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    26
	if [ -z "$res" ]; then
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    27
		echo "Regression test passed!"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    28
	else
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    29
		echo "Regression test failed! Difference:"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    30
		echo "$res"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    31
	fi
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    32
	echo ""
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    33
	stderr="`cat tmp.stderr`"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    34
	if [ -n "$stderr" ]; then
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    35
		echo "OpenTTD gave this on stderr:"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    36
		echo "$stderr"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    37
	fi
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    38
	echo ""
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    39
	echo "Regression test done"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    40
fi
9461
ab1079656642 (svn r9293) [NoAI] -Add: added regression.sav, regression.txt and a small script to test if the regression passes. Make sure to disable any other AI when running this!
truelight
parents:
diff changeset
    41
9523
cacf2f05f79b (svn r9443) [NoAI] -Fix: make regression now shows stderr output at the bottom (else it got lost really fast)
truelight
parents: 9481
diff changeset
    42
rm -f ai/regression/main.nut tmp.stderr
9470
4593c953a276 (svn r9308) [NoAI] -Change: make the regression scripts run without any user intervention; not manual enabling and disabling of AIs
rubidium
parents: 9469
diff changeset
    43
9464
6c2cbcb79ff7 (svn r9296) [NoAI] -Fix: regression test now replaced 0x(nil) with 0x0000000 to make everything the same on all platforms
truelight
parents: 9463
diff changeset
    44
if [ "$1" != "-k" ]; then
6c2cbcb79ff7 (svn r9296) [NoAI] -Fix: regression test now replaced 0x(nil) with 0x0000000 to make everything the same on all platforms
truelight
parents: 9463
diff changeset
    45
	rm -f tmp.regression
6c2cbcb79ff7 (svn r9296) [NoAI] -Fix: regression test now replaced 0x(nil) with 0x0000000 to make everything the same on all platforms
truelight
parents: 9463
diff changeset
    46
fi