<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Automated_test_setup</id>
	<title>Automated test setup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Automated_test_setup"/>
	<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Automated_test_setup&amp;action=history"/>
	<updated>2026-04-27T08:16:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Automated_test_setup&amp;diff=1450&amp;oldid=prev</id>
		<title>Sh: Created page with &quot;An automated test system is setup on tustin.iau.dtu.dk. The test consists of a number of scripts testing various features of the Mobotware software.  The test is run hourly by...&quot;</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Automated_test_setup&amp;diff=1450&amp;oldid=prev"/>
		<updated>2014-02-13T21:57:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;An automated test system is setup on tustin.iau.dtu.dk. The test consists of a number of scripts testing various features of the Mobotware software.  The test is run hourly by...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;An automated test system is setup on tustin.iau.dtu.dk. The test consists of a number of scripts testing various features of the Mobotware software. &lt;br /&gt;
The test is run hourly by a cron job and output is directed to a homepage.&lt;br /&gt;
The cron job is setup on a Linux system by running &amp;lt;tt&amp;gt;crontab -e&amp;lt;/tt&amp;gt; and adding the following line:&lt;br /&gt;
 00 * * * * /path/to/scripts/byg-check&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile test ==&lt;br /&gt;
To test that all programs in the standard Mobotware package compiles as intended the script &amp;lt;tt&amp;gt;byg-check&amp;lt;/tt&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
WEB_PATH=/path/to/output/page.html&lt;br /&gt;
RUN_TIME=`date`&lt;br /&gt;
&lt;br /&gt;
cd /path/to/scripts&lt;br /&gt;
svn up &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
make clean &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
rm -f err.log&lt;br /&gt;
cat text.html &amp;gt; out.html&lt;br /&gt;
echo $RUN_TIME &amp;gt;&amp;gt; out.html&lt;br /&gt;
make &amp;gt; /dev/null 2&amp;gt; err.log&lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
  echo &amp;quot;&amp;lt;hr&amp;gt;&amp;lt;h2&amp;gt;Compile status: SUCCESS&amp;lt;/h2&amp;gt;&amp;quot; &amp;gt;&amp;gt; out.html&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;&amp;lt;hr&amp;gt;&amp;lt;h2&amp;gt;Compile status: FAILED&amp;lt;/h2&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;b&amp;gt;Error-log:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;quot; &amp;gt;&amp;gt; out.html&lt;br /&gt;
  cat err.log &amp;gt;&amp;gt; out.html&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot; &amp;gt;&amp;gt; out.html&lt;br /&gt;
cp out.html $WEB_PATH&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Simulator test ==&lt;br /&gt;
A test run is done in the simulator to check odometry and laser based localisation. To run the simulator without a display a virtual frame buffer is created using Xvfb. &lt;br /&gt;
&lt;br /&gt;
The script is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
rm -f log&lt;br /&gt;
Xvfb :100 &amp;amp;&lt;br /&gt;
FRAMEPID=$!&lt;br /&gt;
export DISPLAY=:100&lt;br /&gt;
build/bin/rhd rhdconfig.maze.xml &amp;gt;simlog 2&amp;gt;simerr &amp;amp;&lt;br /&gt;
RHDPID=$!&lt;br /&gt;
sleep 5&lt;br /&gt;
build/bin/ulmsserver -a &amp;gt; /dev/null 2&amp;gt; /dev/null &amp;amp;&lt;br /&gt;
ULMPID=$!&lt;br /&gt;
sleep 5&lt;br /&gt;
build/bin/mrc -s0  test &amp;gt;mrclog 2&amp;gt;mrcerrlog&lt;br /&gt;
grep &amp;quot;1.0&amp;quot; log&lt;br /&gt;
if [ $? -eq 0 ]; then&lt;br /&gt;
   RETVAL=1&lt;br /&gt;
else&lt;br /&gt;
   grep &amp;quot;2.0&amp;quot; log&lt;br /&gt;
   if [ $? -eq 0 ]; then&lt;br /&gt;
     RETVAL=2&lt;br /&gt;
   else&lt;br /&gt;
     RETVAL=0&lt;br /&gt;
   fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
kill $FRAMEPID $RHDPID $ULMPID&lt;br /&gt;
&lt;br /&gt;
exit $RETVAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The mrc program &amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; is a smrcl script that drives the robot around a predefined pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
laser &amp;quot;setinitpose x=-0.2 y=0.5 th=0.0&amp;quot;&lt;br /&gt;
laser &amp;quot;setinitcov Cx=0.004 Cy=0.004 Cth=0.01&amp;quot;&lt;br /&gt;
laser &amp;quot;push t=&amp;#039;1.0&amp;#039; cmd=&amp;#039;localize&amp;#039;&amp;quot;&lt;br /&gt;
fwd 1.7 &lt;br /&gt;
turn 75&lt;br /&gt;
fwd 1.8&lt;br /&gt;
turn 15&lt;br /&gt;
fwd 1.15&lt;br /&gt;
turn 90&lt;br /&gt;
fwd 1.75&lt;br /&gt;
turn 60&lt;br /&gt;
fwd 0.15&lt;br /&gt;
turn 15&lt;br /&gt;
fwd 0.12&lt;br /&gt;
turn 15&lt;br /&gt;
fwd 0.3 &lt;br /&gt;
turn 45&lt;br /&gt;
fwd 0.5&lt;br /&gt;
turn -45 &lt;br /&gt;
fwd 1.45&lt;br /&gt;
turn -90&lt;br /&gt;
fwd 0.7&lt;br /&gt;
eval $odox;$odoy;$odoth&lt;br /&gt;
eval $l0;$l1;$l2&lt;br /&gt;
result=0&lt;br /&gt;
resultt=1&lt;br /&gt;
if (abs($odox+0.033)&amp;gt;0.01|abs($odoy-0.542)&amp;gt;0.01|abs(normalizeanglerad($odoth-3.14))&amp;gt;0.01) &amp;quot;failed&amp;quot;&lt;br /&gt;
resultt=2&lt;br /&gt;
if (abs($l0-0.1)&amp;gt;0.03|abs($l1+0.4)&amp;gt;0.03|abs(normalizeanglerad($l2))&amp;gt;0.05) &amp;quot;failed&amp;quot;&lt;br /&gt;
resultt=0&lt;br /&gt;
label &amp;quot;failed&amp;quot;&lt;br /&gt;
log &amp;quot;result&amp;quot;&lt;br /&gt;
result = resultt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sh</name></author>
	</entry>
</feed>