]> code.ossystems Code Review - openembedded-core.git/commitdiff
qemuimagetest: update cvs and iptables to newer version for toolchain test
authorJiajun Xu <jiajun.xu@intel.com>
Fri, 24 Jun 2011 07:53:45 +0000 (15:53 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 24 Jun 2011 10:28:28 +0000 (11:28 +0100)
The old versions of cvs and iptables may meet compile error under some architecture
- cvs 1.11.23 fails on x86-64 host and iptables 1.4.9 fails on arm host. Update them
to latest version could solve these build error.
Meanwhile, 240s timeout is set for sudoku becasue 120s is not enough to finish
compile.

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>

meta/classes/imagetest-qemu.bbclass
scripts/qemuimage-testlib
scripts/qemuimage-tests/toolchain/sudoku-savant

index e259ae9baa6b5a1798311a0cf42140de1d55bcb8..25304de5ef071ac85e5d715dfbf8389b1852000c 100644 (file)
@@ -33,7 +33,7 @@ def qemuimagetest_main(d):
     Test Controller for automated testing.
     """
     
-    casestr = re.compile(r'(?P<scen>\w+\b):(?P<case>\w+$)')
+    casestr = re.compile(r'(?P<scen>\w+\b):(?P<case>\S+$)')
     resultstr = re.compile(r'\s*(?P<case>\w+)\s*(?P<pass>\d+)\s*(?P<fail>\d+)\s*(?P<noresult>\d+)')
     machine = bb.data.getVar('MACHINE', d, 1)
     pname = bb.data.getVar('PN', d, 1)
index c39fb7ae21c1ca3ca38407a9849e15dcbb4f0a25..c2dbf6027f6c5edd20704cf106cfa30633508464 100644 (file)
@@ -32,14 +32,14 @@ PID=0
 TARGET_IPADDR=0
 
 # Global variable for test project version during toolchain test
-# Version of cvs is 1.11.23
-# Version of iptables is 1.4.9
+# Version of cvs is 1.12.13
+# Version of iptables is 1.4.11
 # Version of sudoku-savant is 1.3
 PROJECT_PV=0
 
 # Global variable for test project download URL during toolchain test
-# URL of cvs is http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cvs-1.11.23.tar.bz2
-# URL of iptables is http://netfilter.org/projects/iptables/files/iptables-1.4.9.tar.bz2
+# URL of cvs is http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2
+# URL of iptables is http://netfilter.org/projects/iptables/files/iptables-1.4.11.tar.bz2
 # URL of sudoku-savant is http://downloads.sourceforge.net/project/sudoku-savant/sudoku-savant/sudoku-savant-1.3/sudoku-savant-1.3.tar.bz2
 PROJECT_DOWNLOAD_URL=0
 
@@ -641,14 +641,46 @@ Test_Time_Out()
        local date=0
        local tmp=`mktemp`
        local ret=1
+       local pid=0
+       local ppid=0
+       local i=0
+       declare local pid_l
 
        # Run command in background
        ($command; echo $? > $tmp) &
-       while ps -e -o pid | grep -qw $!; do
+       pid=$!
+       while ps -e -o pid | grep -qw $pid; do
                if [ $date -ge $timeout ]; then
                        Test_Info "$timeout Timeout when running command $command"
                        rm -rf $tmp
-                       return 1
+
+                       # Find all child processes of pid and kill them
+                       ppid=$pid
+                       ps -f --ppid $ppid
+                       ret=$?
+       
+                       while [ $ret -eq 0 ]
+                       do
+                               # If yes, get the child pid and check if the child pid has other child pid
+                               # Continue the while loop until there is no child pid found
+                               pid_l[$i]=`ps -f --ppid $ppid | awk '{if ($2 != "PID") print $2}'`
+                               ppid=${pid_l[$i]}
+                               i=$((i+1))
+                               ps -f --ppid $ppid
+                               ret=$?
+                       done
+       
+                               # Kill these children pids from the last one
+                               while [ $i -ne 0 ]
+                               do
+                                       i=$((i-1))
+                                       kill ${pid_l[$i]}
+                                       sleep 2
+                               done
+       
+                               # Kill the parent id
+                               kill $pid
+                               return 1
                fi
                sleep 5
                date=`expr $date + 5`
@@ -672,11 +704,11 @@ Test_Toolchain()
 
        # Set value for PROJECT_PV and PROJECT_DOWNLOAD_URL accordingly
        if [ $test_project == "cvs" ]; then
-               PROJECT_PV=1.11.23
-               PROJECT_DOWNLOAD_URL="http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cvs-1.11.23.tar.bz2"
+               PROJECT_PV=1.12.13
+               PROJECT_DOWNLOAD_URL="http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2"
        elif [ $test_project == "iptables" ]; then
-               PROJECT_PV=1.4.9
-               PROJECT_DOWNLOAD_URL="http://netfilter.org/projects/iptables/files/iptables-1.4.9.tar.bz2"
+               PROJECT_PV=1.4.11
+               PROJECT_DOWNLOAD_URL="http://netfilter.org/projects/iptables/files/iptables-1.4.11.tar.bz2"
        elif [ $test_project == "sudoku-savant" ]; then
                PROJECT_PV=1.3
                PROJECT_DOWNLOAD_URL="http://downloads.sourceforge.net/project/sudoku-savant/sudoku-savant/sudoku-savant-1.3/sudoku-savant-1.3.tar.bz2"
index 603afe63ee15a7823aad50e660d4731a2a965c39..3d149dea277575e9c5de79095faa4b02e846d203 100755 (executable)
@@ -11,7 +11,7 @@
 #
 . $COREBASE/scripts/qemuimage-testlib
 
-TIMEOUT=120
+TIMEOUT=240
 
 # Extract and test toolchain tarball
 Test_Toolchain sudoku-savant ${TIMEOUT}