bin/ai/regression/run.sh
author truebrain
Fri, 18 Jul 2008 00:15:14 +0000
branchnoai
changeset 11165 a725845fcc01
parent 11101 94e33f3174a6
permissions -rwxr-xr-x
(svn r13723) [NoAI] -Add: added AIIndustry::GetStockpiledCargo() (Yexo)
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
10650
30fc5395b1b8 (svn r13194) [NoAI] -Change [API CHANGE]: split 'main.nut' in 'info.nut' and 'main.nut'. The first contains the information about the AI, the second the AI. This avoid several problems we had. It also speeds up OpenTTD start-up.
truebrain
parents: 10648
diff changeset
     9
cp ai/regression/regression_info.nut ai/regression/info.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
    10
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
    11
params=""
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    12
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
    13
if [ "$1" != "-r" ]; then
11101
94e33f3174a6 (svn r13659) [NoAI] -Fix: give regression a bit more time to do his job, as the new scheduler makes it take too long ;)
truebrain
parents: 10674
diff changeset
    14
	params="-snull -mnull -vnull:ticks=30000"
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
    15
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    16
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
    17
	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
    18
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    19
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
    20
	$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
    21
else
10674
542470cee8a2 (svn r13218) [NoAI] -Add: added a [S/E/P/W/I] in front of DEBUG messages from AILog, to indicate the level of message (the one that goes to the stdout) (request by Mchl)
truebrain
parents: 10650
diff changeset
    22
	./openttd -a regression -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x\\(nil\\)", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $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
    23
fi
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    24
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    25
if [ -z "$gdb" ]; then
10648
1ebb27f31a71 (svn r13192) [NoAI] -Fix: ignore eol for regression
glx
parents: 9851
diff changeset
    26
	res="`diff -ub ai/regression/regression.txt tmp.regression`"
9663
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    27
	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
    28
		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
    29
	else
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    30
		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
    31
		echo "$res"
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    32
	fi
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    33
	echo ""
f854f05bbbce (svn r10576) [NoAI] -Add: added -g to regression test script, to start gdb over regression-test
truelight
parents: 9644
diff changeset
    34
	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
    35
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
    36
10650
30fc5395b1b8 (svn r13194) [NoAI] -Change [API CHANGE]: split 'main.nut' in 'info.nut' and 'main.nut'. The first contains the information about the AI, the second the AI. This avoid several problems we had. It also speeds up OpenTTD start-up.
truebrain
parents: 10648
diff changeset
    37
rm -f ai/regression/main.nut ai/regression/info.nut
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
    38
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
    39
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
    40
	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
    41
fi