All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest
@ 2011-04-28 15:32 Jiajun Xu
  2011-04-28 15:32 ` [PATCH 1/1] " Jiajun Xu
  0 siblings, 1 reply; 5+ messages in thread
From: Jiajun Xu @ 2011-04-28 15:32 UTC (permalink / raw)
  To: poky

From: Jiajun Xu <jiajun.xu@intel.com>

Three C/C++ test projects are added to test toolchain - cvs, iptables and sudoku-savant. 
User needs to set TEST_SCEN to "toolchain" in local.conf to enable tests. Test case
will check if toolchain tarball exists under "${DEPLOY_DIR}/sdk". And it will
extract toolchain tarball into /opt. It requires user to chown /opt to non-root
user, who will run qemuimagetest.

Pull URL: git://git.pokylinux.org/poky-contrib.git
  Branch: jxu49/master
  Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=jxu49/master

Thanks,
    Jiajun Xu <jiajun.xu@intel.com>
---


Jiajun Xu (1):
  qemuimagetest: Enable toolchain automation tests in qemuimagetest

 meta-yocto/conf/local.conf.sample                  |    2 +-
 meta/classes/imagetest-qemu.bbclass                |    9 +-
 meta/classes/populate_sdk.bbclass                  |    3 +
 scripts/qemuimage-testlib                          |  232 +++++++++++++++++++-
 .../scenario/qemuarm/meta-toolchain-gmae           |    3 +
 .../scenario/qemumips/meta-toolchain-gmae          |    3 +
 .../scenario/qemuppc/meta-toolchain-gmae           |    3 +
 .../scenario/qemux86-64/meta-toolchain-gmae        |    3 +
 .../scenario/qemux86/meta-toolchain-gmae           |    3 +
 scripts/qemuimage-tests/toolchain/cvs              |   31 +++
 scripts/qemuimage-tests/toolchain/iptables         |   31 +++
 scripts/qemuimage-tests/toolchain/sudoku-savant    |   31 +++
 12 files changed, 350 insertions(+), 4 deletions(-)
 create mode 100644 scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
 create mode 100755 scripts/qemuimage-tests/toolchain/cvs
 create mode 100755 scripts/qemuimage-tests/toolchain/iptables
 create mode 100755 scripts/qemuimage-tests/toolchain/sudoku-savant



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest
  2011-04-28 15:32 [PATCH 0/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest Jiajun Xu
@ 2011-04-28 15:32 ` Jiajun Xu
  2011-04-29  5:10   ` Saul Wold
  0 siblings, 1 reply; 5+ messages in thread
From: Jiajun Xu @ 2011-04-28 15:32 UTC (permalink / raw)
  To: poky

From: Jiajun Xu <jiajun.xu@intel.com>

Enable toolchain automation tests in qemuimagetest framework. 3 C/C++ test
projects are added to test toolchain - cvs, iptables and sudoku-savant. User
needs to set TEST_SCEN to "toolchain" in local.conf to enable tests. Test case
will check if toolchain tarball exists under "${DEPLOY_DIR}/sdk". And it will
extract toolchain tarball into /opt. It requires user to chown /opt to non-root
user, who will run qemuimagetest.

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
---
 meta-yocto/conf/local.conf.sample                  |    2 +-
 meta/classes/imagetest-qemu.bbclass                |    9 +-
 meta/classes/populate_sdk.bbclass                  |    3 +
 scripts/qemuimage-testlib                          |  232 +++++++++++++++++++-
 .../scenario/qemuarm/meta-toolchain-gmae           |    3 +
 .../scenario/qemumips/meta-toolchain-gmae          |    3 +
 .../scenario/qemuppc/meta-toolchain-gmae           |    3 +
 .../scenario/qemux86-64/meta-toolchain-gmae        |    3 +
 .../scenario/qemux86/meta-toolchain-gmae           |    3 +
 scripts/qemuimage-tests/toolchain/cvs              |   31 +++
 scripts/qemuimage-tests/toolchain/iptables         |   31 +++
 scripts/qemuimage-tests/toolchain/sudoku-savant    |   31 +++
 12 files changed, 350 insertions(+), 4 deletions(-)
 create mode 100644 scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
 create mode 100644 scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
 create mode 100755 scripts/qemuimage-tests/toolchain/cvs
 create mode 100755 scripts/qemuimage-tests/toolchain/iptables
 create mode 100755 scripts/qemuimage-tests/toolchain/sudoku-savant

diff --git a/meta-yocto/conf/local.conf.sample b/meta-yocto/conf/local.conf.sample
index 740f542..5cf3b26 100644
--- a/meta-yocto/conf/local.conf.sample
+++ b/meta-yocto/conf/local.conf.sample
@@ -175,7 +175,7 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
 # By default test cases in sanity suite will be ran. If you want to run other 
 # test suite or specific test case(e.g. bat or boot test case under sanity suite), 
 # list them like following.
-#TEST_SCEN = "sanity bat sanity:boot"
+#TEST_SCEN = "sanity bat sanity:boot toolchain"
 
 #Because of the QEMU booting slowness issue(see bug #646 and #618), autobuilder
 #may suffer a timeout issue when running sanity test. We introduce variable
diff --git a/meta/classes/imagetest-qemu.bbclass b/meta/classes/imagetest-qemu.bbclass
index daeb8d8..e259ae9 100644
--- a/meta/classes/imagetest-qemu.bbclass
+++ b/meta/classes/imagetest-qemu.bbclass
@@ -27,6 +27,7 @@ def qemuimagetest_main(d):
     import sys
     import re
     import os
+    import shutil
     
     """
     Test Controller for automated testing.
@@ -72,6 +73,7 @@ def qemuimagetest_main(d):
         os.environ["TEST_STATUS"] = bb.data.getVar("TEST_STATUS", d, True)
         os.environ["TARGET_IPSAVE"] = bb.data.getVar("TARGET_IPSAVE", d, True)
         os.environ["TEST_SERIALIZE"] = bb.data.getVar("TEST_SERIALIZE", d, True)
+        os.environ["SDK_NAME"] = bb.data.getVar("SDK_NAME", d, True)
 
         """run Test Case"""
         bb.note("Run %s test in scenario %s" % (case, scen))
@@ -120,7 +122,10 @@ def qemuimagetest_main(d):
         if os.path.isdir(tmppath):
             for f in os.listdir(tmppath):
                 tmpfile = os.path.join(tmppath, f)
-                os.remove(tmpfile)
+		if os.path.isfile(tmpfile):
+                    os.remove(tmpfile)
+                elif os.path.isdir(tmpfile):
+                    shutil.rmtree(tmpfile, True)
 
     """Before running testing, clean temp folder first"""
     clean_tmp()
@@ -154,7 +159,7 @@ def qemuimagetest_main(d):
     os.system("touch %s" % resultfile)
     os.symlink(resultfile, sresultfile)
     f = open(sresultfile, "a")
-    f.write("\tTest Result for %s\n" % machine)
+    f.write("\tTest Result for %s %s\n" % (machine, pname))
     f.write("\t%-15s%-15s%-15s%-15s\n" % ("Testcase", "PASS", "FAIL", "NORESULT"))
     f.close()
     
diff --git a/meta/classes/populate_sdk.bbclass b/meta/classes/populate_sdk.bbclass
index 413eb52..70670ba 100644
--- a/meta/classes/populate_sdk.bbclass
+++ b/meta/classes/populate_sdk.bbclass
@@ -1,6 +1,9 @@
 inherit meta toolchain-scripts
 inherit populate_sdk_${IMAGE_PKGTYPE}
 
+IMAGETEST ?= "dummy"
+inherit imagetest-${IMAGETEST}
+
 SDK_DIR = "${WORKDIR}/sdk"
 SDK_OUTPUT = "${SDK_DIR}/image"
 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
diff --git a/scripts/qemuimage-testlib b/scripts/qemuimage-testlib
index 5318ca6..bcf6e43 100755
--- a/scripts/qemuimage-testlib
+++ b/scripts/qemuimage-testlib
@@ -19,6 +19,9 @@ TYPE="ext3"
 # The folder to hold all scripts running on targets
 TOOLS="$COREBASE/scripts/qemuimage-tests/tools"
 
+# The folder to hold all projects for toolchain testing
+TOOLCHAIN_PROJECTS="$COREBASE/scripts/qemuimage-tests/toolchain_projects"
+
 # Test Directory on target for testing
 TARGET_TEST_DIR="/opt/test"
 
@@ -28,6 +31,24 @@ PID=0
 # Global variable for target ip address
 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 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 ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.9.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
+
+# SDK folder to hold toolchain tarball
+TOOLCHAIN_DIR="${DEPLOY_DIR}/sdk"
+
+# Toolchain test folder to hold extracted toolchain tarball
+TOOLCHAIN_TEST="/opt"
+
 # common function for information print
 Test_Error()
 {
@@ -400,7 +421,7 @@ Test_Create_Qemu()
 		RUNQEMU=`which runqemu`
 	else
 		Test_Error "Can not find runqemu in \$PATH, return fail"
-		exit 1
+		return 1
 	fi
 	
 	if [ "$QEMUARCH" = "qemux86" -o "$QEMUARCH" = "qemux86-64" ]; then
@@ -499,3 +520,212 @@ Test_Create_Qemu()
 		return $ret
 	fi
 }
+
+# Function to prepare test project for toolchain test
+# $1 is the folder holding test project file
+# $2 is the test project name
+Test_Project_Prepare()
+{
+	local toolchain_dir=$1
+	local ret=1
+
+	if [ ! -d ${toolchain_dir} ]; then
+		mkdir -p ${toolchain_dir}
+		ret=$?
+
+		if [ $ret -ne 0 ]; then
+			Test_Info "Create ${toolchain_dir} fail, return"
+			return $ret
+		fi
+	fi
+
+	ret=0
+	# Download test project tarball if it does not exist
+	if [ ! -f ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix} ]; then
+		wget -c -t 5 $PROJECT_DOWNLOAD_URL -O ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix}
+		ret=$?
+	fi
+
+	# Extract the test project into ${TEST_TMP}
+	if [ $ret -eq 0 ]; then
+		tar jxf ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix} -C ${TEST_TMP}
+		ret=$?
+		if [ $ret -eq 0 ]; then
+			Test_Info "Extract ${2}-${PROJECT_PV}.${suffix} into ${TEST_TMP} successfully"
+			return $ret
+		else
+			Test_Info "Fail to extract ${2}-${PROJECT_PV}.${suffix} into ${TEST_TMP}"
+			return $ret
+		fi
+	else
+		Test_Info "Fail to download ${2}-${PROJECT_PV}.${suffix} from $PROJECT_DOWNLOAD_URL"
+		rm -rf ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix}
+		return $ret
+	fi
+}
+
+# Function to prepare toolchain environment
+# $1 is toolchain directory to hold toolchain tarball
+# $2 is prefix name for toolchain tarball
+Test_Toolchain_Prepare()
+{
+	local toolchain_dir=$1
+	local sdk_name=$2
+	local ret=1
+
+	if [ ! -d ${toolchain_dir} ]; then
+		Test_Info "No directory ${toolchain_dir}, which holds toolchain tarballs"
+		return 1
+	fi
+
+	# Check if there is any toolchain tarball under $toolchain_dir with prefix $sdk_name
+	for i in `dir ${toolchain_dir}`
+	do
+		echo $i | grep "${sdk_name}-toolchain-gmae"
+		if [ $? -eq 0 ]; then
+			rm -rf ${TEST_TMP}/opt
+			tar jxf ${toolchain_dir}/${i} -C ${TEST_TMP}
+			ret=$?
+			break
+		fi
+	done
+
+	if [ $ret -eq 0 ]; then
+		Test_Info "Check if /opt is accessible for non-root user"
+
+		# Check if the non-root test user has write access of $TOOLCHAIN_TEST
+		if [ -d ${TOOLCHAIN_TEST} ]; then
+			touch ${TOOLCHAIN_TEST}
+			if [ $? -ne 0 ]; then
+				Test_Info "Has no right to modify folder $TOOLCHAIN_TEST, pls. chown it to test user"
+				return 2
+			fi
+		else
+			mkdir -p ${TOOLCHAIN_TEST}
+			if [ $? -ne 0 ]; then
+				Test_Info "Has no right to create folder $TOOLCHAIN_TEST, pls. create it and chown it to test user"
+				return 2
+			fi
+		fi
+
+		# If there is a toolchain folder under $TOOLCHAIN_TEST, let's remove it
+		if [ -d ${TOOLCHAIN_TEST}/poky ]; then
+			rm -rf ${TOOLCHAIN_TEST}/poky
+		fi
+
+		# Copy toolchain into $TOOLCHAIN_TEST
+		cp -r ${TEST_TMP}/opt/poky ${TOOLCHAIN_TEST}
+		ret=$?
+
+		if [ $ret -eq 0 ]; then
+			Test_Info "Successfully copy toolchain into $TOOLCHAIN_TEST"
+			return $ret
+		else
+			Test_Info "Meet error when copy toolchain into $TOOLCHAIN_TEST"
+			return $ret
+		fi
+	else
+		Test_Info "No tarball named ${sdk_name}-toolchain-gmae under ${toolchain_dir}"
+		return $ret
+	fi
+}
+
+# Function to execute command and exit if run out of time
+# $1 is timeout value
+# $2 is the command to be executed
+Test_Time_Out()
+{
+	local timeout=$1
+	shift
+	local command=$*
+	local date=0
+	local tmp=`mktemp`
+	local ret=1
+
+	# Run command in background
+	($command; echo $? > $tmp) &
+	while ps -e -o pid | grep -qw $!; do
+		if [ $date -ge $timeout ]; then
+			Test_Info "$timeout Timeout when running command $command"
+			rm -rf $tmp
+			return 1
+		fi
+		sleep 5
+		date=`expr $date + 5`
+	done
+	ret=`cat $tmp`
+	rm -rf $tmp
+	return $ret
+}
+
+# Function to test toolchain
+# $1 is test project name
+# $2 is the timeout value
+Test_Toolchain()
+{
+	local test_project=$1
+	local timeout=$2
+	local ret=1
+	local suffix="tar.bz2"
+	local env_setup=""
+	local pro_install="${TEST_TMP}/pro_install"
+
+	# 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"
+	elif [ $test_project == "iptables" ]; then
+		PROJECT_PV=1.4.9
+		PROJECT_DOWNLOAD_URL="ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.9.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"
+	else
+		Test_Info "Unknown test project name $test_project"
+		return 1
+	fi
+
+	# Download test project and extract it
+	Test_Project_Prepare $TOOLCHAIN_PROJECTS $test_project
+	if [ $? -ne 0 ]; then
+		Test_Info "Prepare test project file failed"
+		return 1
+	fi
+
+	# Extract toolchain tarball into ${TEST_TMP}
+	Test_Toolchain_Prepare $TOOLCHAIN_DIR $SDK_NAME
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		Test_Info "Prepare toolchain test environment failed"
+		return $ret
+	fi
+
+	if [ ! -d ${pro_install} ]; then
+		mkdir -p ${pro_install}
+	fi
+
+	# Begin to build test project in toolchain environment
+	env_setup=`find ${TOOLCHAIN_TEST}/poky -name "environment-setup*"`
+
+	source $env_setup
+
+	if [ $test_project == "cvs" -o $test_project == "iptables" ]; then
+		cd ${TEST_TMP}/${test_project}-${PROJECT_PV}
+		Test_Time_Out $timeout ./configure ${CONFIGURE_FLAGS} || { Test_Info "configure failed with $test_project"; return 1; }
+		Test_Time_Out $timeout make -j4 || { Test_Info "make failed with $test_project"; return 1; }
+		Test_Time_Out $timeout make install DESTDIR=${pro_install} || { Test_Info "make failed with $test_project"; return 1; }
+		cd -
+		ret=0
+	elif [ $test_project == "sudoku-savant" ]; then
+		cd ${TEST_TMP}/${test_project}-${PROJECT_PV}
+		Test_Time_Out $timeout ./configure ${CONFIGURE_FLAGS} || { Test_Info "configure failed with $test_project"; return 1; }
+		Test_Time_Out $timeout make -j4 || { Test_Info "make failed with $test_project"; return 1; }
+		cd -
+		ret=0
+	else
+		Test_Info "Unknown test project $test_project"
+		ret=1
+	fi
+
+	return $ret
+}
diff --git a/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
new file mode 100644
index 0000000..199176e
--- /dev/null
+++ b/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
@@ -0,0 +1,3 @@
+toolchain cvs
+toolchain iptables
+toolchain sudoku-savant
diff --git a/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
new file mode 100644
index 0000000..199176e
--- /dev/null
+++ b/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
@@ -0,0 +1,3 @@
+toolchain cvs
+toolchain iptables
+toolchain sudoku-savant
diff --git a/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
new file mode 100644
index 0000000..199176e
--- /dev/null
+++ b/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
@@ -0,0 +1,3 @@
+toolchain cvs
+toolchain iptables
+toolchain sudoku-savant
diff --git a/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
new file mode 100644
index 0000000..199176e
--- /dev/null
+++ b/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
@@ -0,0 +1,3 @@
+toolchain cvs
+toolchain iptables
+toolchain sudoku-savant
diff --git a/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
new file mode 100644
index 0000000..199176e
--- /dev/null
+++ b/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
@@ -0,0 +1,3 @@
+toolchain cvs
+toolchain iptables
+toolchain sudoku-savant
diff --git a/scripts/qemuimage-tests/toolchain/cvs b/scripts/qemuimage-tests/toolchain/cvs
new file mode 100755
index 0000000..871d991
--- /dev/null
+++ b/scripts/qemuimage-tests/toolchain/cvs
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# CVS compile Test for toolchain test
+# The case extract toolchain tarball into temp folder
+# Then compile CVS with the toolchain environment
+#
+# Author: Jiajun Xu <jiajun.xu@intel.com>
+#
+# This file is licensed under the GNU General Public License,
+# Version 2.
+#
+. $COREBASE/scripts/qemuimage-testlib
+
+TIMEOUT=120
+
+# Extract and test toolchain tarball
+Test_Toolchain cvs ${TIMEOUT}
+
+if [ $? -eq 0 ]; then
+	Test_Info "CVS Test PASS"
+	Test_Print_Result "CVS" 0
+	exit 0
+elif [ $? -eq 1 ]; then
+	Test_Info "CVS Test FAIL"
+	Test_Print_Result "CVS" 1
+	exit 1
+else
+	Test_Info "Skip CVS Test due to some configuration problem"
+	Test_Print_Result "CVS" 2
+	exit 2
+fi
diff --git a/scripts/qemuimage-tests/toolchain/iptables b/scripts/qemuimage-tests/toolchain/iptables
new file mode 100755
index 0000000..af89bbe
--- /dev/null
+++ b/scripts/qemuimage-tests/toolchain/iptables
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# iptables compile Test for toolchain test
+# The case extract toolchain tarball into temp folder
+# Then compile iptables with the toolchain environment
+#
+# Author: Jiajun Xu <jiajun.xu@intel.com>
+#
+# This file is licensed under the GNU General Public License,
+# Version 2.
+#
+. $COREBASE/scripts/qemuimage-testlib
+
+TIMEOUT=120
+
+# Extract and test toolchain tarball
+Test_Toolchain iptables ${TIMEOUT}
+
+if [ $? -eq 0 ]; then
+	Test_Info "iptables Test PASS"
+	Test_Print_Result "iptables" 0
+	exit 0
+elif [ $? -eq 1 ]; then
+	Test_Info "iptables Test FAIL"
+	Test_Print_Result "iptables" 1
+	exit 1
+else
+	Test_Info "Skip iptables Test due to some configuration problem"
+	Test_Print_Result "iptables" 2
+	exit 2
+fi
diff --git a/scripts/qemuimage-tests/toolchain/sudoku-savant b/scripts/qemuimage-tests/toolchain/sudoku-savant
new file mode 100755
index 0000000..603afe6
--- /dev/null
+++ b/scripts/qemuimage-tests/toolchain/sudoku-savant
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# sudoku-savant compile Test for toolchain test
+# The case extract toolchain tarball into temp folder
+# Then compile sudoku-savant with the toolchain environment
+#
+# Author: Jiajun Xu <jiajun.xu@intel.com>
+#
+# This file is licensed under the GNU General Public License,
+# Version 2.
+#
+. $COREBASE/scripts/qemuimage-testlib
+
+TIMEOUT=120
+
+# Extract and test toolchain tarball
+Test_Toolchain sudoku-savant ${TIMEOUT}
+
+if [ $? -eq 0 ]; then
+	Test_Info "sudoku-savant Test PASS"
+	Test_Print_Result "sudoku-savant" 0
+	exit 0
+elif [ $? -eq 1 ]; then
+	Test_Info "sudoku-savant Test FAIL"
+	Test_Print_Result "sudoku-savant" 1
+	exit 1
+else
+	Test_Info "Skip sudoku-savant Test due to some configuration problem"
+	Test_Print_Result "sudoku-savant" 2
+	exit 2
+fi
-- 
1.7.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest
  2011-04-28 15:32 ` [PATCH 1/1] " Jiajun Xu
@ 2011-04-29  5:10   ` Saul Wold
  2011-04-29  6:19     ` Xu, Jiajun
  0 siblings, 1 reply; 5+ messages in thread
From: Saul Wold @ 2011-04-29  5:10 UTC (permalink / raw)
  To: Jiajun Xu; +Cc: poky

On 04/28/2011 08:32 AM, Jiajun Xu wrote:
> From: Jiajun Xu<jiajun.xu@intel.com>
>
> Enable toolchain automation tests in qemuimagetest framework. 3 C/C++ test
> projects are added to test toolchain - cvs, iptables and sudoku-savant. User
> needs to set TEST_SCEN to "toolchain" in local.conf to enable tests. Test case
> will check if toolchain tarball exists under "${DEPLOY_DIR}/sdk". And it will
> extract toolchain tarball into /opt. It requires user to chown /opt to non-root
> user, who will run qemuimagetest.
>
> Signed-off-by Jiajun Xu<jiajun.xu@intel.com>
> ---
>   meta-yocto/conf/local.conf.sample                  |    2 +-
>   meta/classes/imagetest-qemu.bbclass                |    9 +-
>   meta/classes/populate_sdk.bbclass                  |    3 +
>   scripts/qemuimage-testlib                          |  232 +++++++++++++++++++-
>   .../scenario/qemuarm/meta-toolchain-gmae           |    3 +
>   .../scenario/qemumips/meta-toolchain-gmae          |    3 +
>   .../scenario/qemuppc/meta-toolchain-gmae           |    3 +
>   .../scenario/qemux86-64/meta-toolchain-gmae        |    3 +
>   .../scenario/qemux86/meta-toolchain-gmae           |    3 +
>   scripts/qemuimage-tests/toolchain/cvs              |   31 +++
>   scripts/qemuimage-tests/toolchain/iptables         |   31 +++
>   scripts/qemuimage-tests/toolchain/sudoku-savant    |   31 +++
>   12 files changed, 350 insertions(+), 4 deletions(-)
>   create mode 100644 scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
>   create mode 100644 scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
>   create mode 100644 scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
>   create mode 100644 scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
>   create mode 100644 scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
>   create mode 100755 scripts/qemuimage-tests/toolchain/cvs
>   create mode 100755 scripts/qemuimage-tests/toolchain/iptables
>   create mode 100755 scripts/qemuimage-tests/toolchain/sudoku-savant
>
> diff --git a/meta-yocto/conf/local.conf.sample b/meta-yocto/conf/local.conf.sample
> index 740f542..5cf3b26 100644
> --- a/meta-yocto/conf/local.conf.sample
> +++ b/meta-yocto/conf/local.conf.sample
> @@ -175,7 +175,7 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
>   # By default test cases in sanity suite will be ran. If you want to run other
>   # test suite or specific test case(e.g. bat or boot test case under sanity suite),
>   # list them like following.
> -#TEST_SCEN = "sanity bat sanity:boot"
> +#TEST_SCEN = "sanity bat sanity:boot toolchain"
>
>   #Because of the QEMU booting slowness issue(see bug #646 and #618), autobuilder
>   #may suffer a timeout issue when running sanity test. We introduce variable
> diff --git a/meta/classes/imagetest-qemu.bbclass b/meta/classes/imagetest-qemu.bbclass
> index daeb8d8..e259ae9 100644
> --- a/meta/classes/imagetest-qemu.bbclass
> +++ b/meta/classes/imagetest-qemu.bbclass
> @@ -27,6 +27,7 @@ def qemuimagetest_main(d):
>       import sys
>       import re
>       import os
> +    import shutil
>
>       """
>       Test Controller for automated testing.
> @@ -72,6 +73,7 @@ def qemuimagetest_main(d):
>           os.environ["TEST_STATUS"] = bb.data.getVar("TEST_STATUS", d, True)
>           os.environ["TARGET_IPSAVE"] = bb.data.getVar("TARGET_IPSAVE", d, True)
>           os.environ["TEST_SERIALIZE"] = bb.data.getVar("TEST_SERIALIZE", d, True)
> +        os.environ["SDK_NAME"] = bb.data.getVar("SDK_NAME", d, True)
>
>           """run Test Case"""
>           bb.note("Run %s test in scenario %s" % (case, scen))
> @@ -120,7 +122,10 @@ def qemuimagetest_main(d):
>           if os.path.isdir(tmppath):
>               for f in os.listdir(tmppath):
>                   tmpfile = os.path.join(tmppath, f)
> -                os.remove(tmpfile)
> +		if os.path.isfile(tmpfile):
> +                    os.remove(tmpfile)
> +                elif os.path.isdir(tmpfile):
> +                    shutil.rmtree(tmpfile, True)
>
>       """Before running testing, clean temp folder first"""
>       clean_tmp()
> @@ -154,7 +159,7 @@ def qemuimagetest_main(d):
>       os.system("touch %s" % resultfile)
>       os.symlink(resultfile, sresultfile)
>       f = open(sresultfile, "a")
> -    f.write("\tTest Result for %s\n" % machine)
> +    f.write("\tTest Result for %s %s\n" % (machine, pname))
>       f.write("\t%-15s%-15s%-15s%-15s\n" % ("Testcase", "PASS", "FAIL", "NORESULT"))
>       f.close()
>
> diff --git a/meta/classes/populate_sdk.bbclass b/meta/classes/populate_sdk.bbclass
> index 413eb52..70670ba 100644
> --- a/meta/classes/populate_sdk.bbclass
> +++ b/meta/classes/populate_sdk.bbclass
> @@ -1,6 +1,9 @@
>   inherit meta toolchain-scripts
>   inherit populate_sdk_${IMAGE_PKGTYPE}
>
> +IMAGETEST ?= "dummy"
> +inherit imagetest-${IMAGETEST}
> +
Why does this need to be added here?

I understand that when IMAGETEST is set to qemu in the local.conf file 
that it will be pulled in, but why to populate_sdk?

Sau!



>   SDK_DIR = "${WORKDIR}/sdk"
>   SDK_OUTPUT = "${SDK_DIR}/image"
>   SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
> diff --git a/scripts/qemuimage-testlib b/scripts/qemuimage-testlib
> index 5318ca6..bcf6e43 100755
> --- a/scripts/qemuimage-testlib
> +++ b/scripts/qemuimage-testlib
> @@ -19,6 +19,9 @@ TYPE="ext3"
>   # The folder to hold all scripts running on targets
>   TOOLS="$COREBASE/scripts/qemuimage-tests/tools"
>
> +# The folder to hold all projects for toolchain testing
> +TOOLCHAIN_PROJECTS="$COREBASE/scripts/qemuimage-tests/toolchain_projects"
> +
>   # Test Directory on target for testing
>   TARGET_TEST_DIR="/opt/test"
>
> @@ -28,6 +31,24 @@ PID=0
>   # Global variable for target ip address
>   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 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 ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.9.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
> +
> +# SDK folder to hold toolchain tarball
> +TOOLCHAIN_DIR="${DEPLOY_DIR}/sdk"
> +
> +# Toolchain test folder to hold extracted toolchain tarball
> +TOOLCHAIN_TEST="/opt"
> +
>   # common function for information print
>   Test_Error()
>   {
> @@ -400,7 +421,7 @@ Test_Create_Qemu()
>   		RUNQEMU=`which runqemu`
>   	else
>   		Test_Error "Can not find runqemu in \$PATH, return fail"
> -		exit 1
> +		return 1
>   	fi
>   	
>   	if [ "$QEMUARCH" = "qemux86" -o "$QEMUARCH" = "qemux86-64" ]; then
> @@ -499,3 +520,212 @@ Test_Create_Qemu()
>   		return $ret
>   	fi
>   }
> +
> +# Function to prepare test project for toolchain test
> +# $1 is the folder holding test project file
> +# $2 is the test project name
> +Test_Project_Prepare()
> +{
> +	local toolchain_dir=$1
> +	local ret=1
> +
> +	if [ ! -d ${toolchain_dir} ]; then
> +		mkdir -p ${toolchain_dir}
> +		ret=$?
> +
> +		if [ $ret -ne 0 ]; then
> +			Test_Info "Create ${toolchain_dir} fail, return"
> +			return $ret
> +		fi
> +	fi
> +
> +	ret=0
> +	# Download test project tarball if it does not exist
> +	if [ ! -f ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix} ]; then
git> +		wget -c -t 5 $PROJECT_DOWNLOAD_URL -O 
${toolchain_dir}/${2}-${PROJECT_PV}.${suffix}
> +		ret=$?
> +	fi
> +
> +	# Extract the test project into ${TEST_TMP}
> +	if [ $ret -eq 0 ]; then
> +		tar jxf ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix} -C ${TEST_TMP}
> +		ret=$?
> +		if [ $ret -eq 0 ]; then
> +			Test_Info "Extract ${2}-${PROJECT_PV}.${suffix} into ${TEST_TMP} successfully"
> +			return $ret
> +		else
> +			Test_Info "Fail to extract ${2}-${PROJECT_PV}.${suffix} into ${TEST_TMP}"
> +			return $ret
> +		fi
> +	else
> +		Test_Info "Fail to download ${2}-${PROJECT_PV}.${suffix} from $PROJECT_DOWNLOAD_URL"
> +		rm -rf ${toolchain_dir}/${2}-${PROJECT_PV}.${suffix}
> +		return $ret
> +	fi
> +}
> +
> +# Function to prepare toolchain environment
> +# $1 is toolchain directory to hold toolchain tarball
> +# $2 is prefix name for toolchain tarball
> +Test_Toolchain_Prepare()
> +{
> +	local toolchain_dir=$1
> +	local sdk_name=$2
> +	local ret=1
> +
> +	if [ ! -d ${toolchain_dir} ]; then
> +		Test_Info "No directory ${toolchain_dir}, which holds toolchain tarballs"
> +		return 1
> +	fi
> +
> +	# Check if there is any toolchain tarball under $toolchain_dir with prefix $sdk_name
> +	for i in `dir ${toolchain_dir}`
> +	do
> +		echo $i | grep "${sdk_name}-toolchain-gmae"
> +		if [ $? -eq 0 ]; then
> +			rm -rf ${TEST_TMP}/opt
> +			tar jxf ${toolchain_dir}/${i} -C ${TEST_TMP}
> +			ret=$?
> +			break
> +		fi
> +	done
> +
> +	if [ $ret -eq 0 ]; then
> +		Test_Info "Check if /opt is accessible for non-root user"
> +
> +		# Check if the non-root test user has write access of $TOOLCHAIN_TEST
> +		if [ -d ${TOOLCHAIN_TEST} ]; then
> +			touch ${TOOLCHAIN_TEST}
> +			if [ $? -ne 0 ]; then
> +				Test_Info "Has no right to modify folder $TOOLCHAIN_TEST, pls. chown it to test user"
> +				return 2
> +			fi
> +		else
> +			mkdir -p ${TOOLCHAIN_TEST}
> +			if [ $? -ne 0 ]; then
> +				Test_Info "Has no right to create folder $TOOLCHAIN_TEST, pls. create it and chown it to test user"
> +				return 2
> +			fi
> +		fi
> +
> +		# If there is a toolchain folder under $TOOLCHAIN_TEST, let's remove it
> +		if [ -d ${TOOLCHAIN_TEST}/poky ]; then
> +			rm -rf ${TOOLCHAIN_TEST}/poky
> +		fi
> +
> +		# Copy toolchain into $TOOLCHAIN_TEST
> +		cp -r ${TEST_TMP}/opt/poky ${TOOLCHAIN_TEST}
> +		ret=$?
> +
> +		if [ $ret -eq 0 ]; then
> +			Test_Info "Successfully copy toolchain into $TOOLCHAIN_TEST"
> +			return $ret
> +		else
> +			Test_Info "Meet error when copy toolchain into $TOOLCHAIN_TEST"
> +			return $ret
> +		fi
> +	else
> +		Test_Info "No tarball named ${sdk_name}-toolchain-gmae under ${toolchain_dir}"
> +		return $ret
> +	fi
> +}
> +
> +# Function to execute command and exit if run out of time
> +# $1 is timeout value
> +# $2 is the command to be executed
> +Test_Time_Out()
> +{
> +	local timeout=$1
> +	shift
> +	local command=$*
> +	local date=0
> +	local tmp=`mktemp`
> +	local ret=1
> +
> +	# Run command in background
> +	($command; echo $?>  $tmp)&
> +	while ps -e -o pid | grep -qw $!; do
> +		if [ $date -ge $timeout ]; then
> +			Test_Info "$timeout Timeout when running command $command"
> +			rm -rf $tmp
> +			return 1
> +		fi
> +		sleep 5
> +		date=`expr $date + 5`
> +	done
> +	ret=`cat $tmp`
> +	rm -rf $tmp
> +	return $ret
> +}
> +
> +# Function to test toolchain
> +# $1 is test project name
> +# $2 is the timeout value
> +Test_Toolchain()
> +{
> +	local test_project=$1
> +	local timeout=$2
> +	local ret=1
> +	local suffix="tar.bz2"
> +	local env_setup=""
> +	local pro_install="${TEST_TMP}/pro_install"
> +
> +	# 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"
> +	elif [ $test_project == "iptables" ]; then
> +		PROJECT_PV=1.4.9
> +		PROJECT_DOWNLOAD_URL="ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.9.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"
> +	else
> +		Test_Info "Unknown test project name $test_project"
> +		return 1
> +	fi
> +
> +	# Download test project and extract it
> +	Test_Project_Prepare $TOOLCHAIN_PROJECTS $test_project
> +	if [ $? -ne 0 ]; then
> +		Test_Info "Prepare test project file failed"
> +		return 1
> +	fi
> +
> +	# Extract toolchain tarball into ${TEST_TMP}
> +	Test_Toolchain_Prepare $TOOLCHAIN_DIR $SDK_NAME
> +	ret=$?
> +	if [ $ret -ne 0 ]; then
> +		Test_Info "Prepare toolchain test environment failed"
> +		return $ret
> +	fi
> +
> +	if [ ! -d ${pro_install} ]; then
> +		mkdir -p ${pro_install}
> +	fi
> +
> +	# Begin to build test project in toolchain environment
> +	env_setup=`find ${TOOLCHAIN_TEST}/poky -name "environment-setup*"`
> +
> +	source $env_setup
> +
> +	if [ $test_project == "cvs" -o $test_project == "iptables" ]; then
> +		cd ${TEST_TMP}/${test_project}-${PROJECT_PV}
> +		Test_Time_Out $timeout ./configure ${CONFIGURE_FLAGS} || { Test_Info "configure failed with $test_project"; return 1; }
> +		Test_Time_Out $timeout make -j4 || { Test_Info "make failed with $test_project"; return 1; }
> +		Test_Time_Out $timeout make install DESTDIR=${pro_install} || { Test_Info "make failed with $test_project"; return 1; }
> +		cd -
> +		ret=0
> +	elif [ $test_project == "sudoku-savant" ]; then
> +		cd ${TEST_TMP}/${test_project}-${PROJECT_PV}
> +		Test_Time_Out $timeout ./configure ${CONFIGURE_FLAGS} || { Test_Info "configure failed with $test_project"; return 1; }
> +		Test_Time_Out $timeout make -j4 || { Test_Info "make failed with $test_project"; return 1; }
> +		cd -
> +		ret=0
> +	else
> +		Test_Info "Unknown test project $test_project"
> +		ret=1
> +	fi
> +
> +	return $ret
> +}
> diff --git a/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
> new file mode 100644
> index 0000000..199176e
> --- /dev/null
> +++ b/scripts/qemuimage-tests/scenario/qemuarm/meta-toolchain-gmae
> @@ -0,0 +1,3 @@
> +toolchain cvs
> +toolchain iptables
> +toolchain sudoku-savant
> diff --git a/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
> new file mode 100644
> index 0000000..199176e
> --- /dev/null
> +++ b/scripts/qemuimage-tests/scenario/qemumips/meta-toolchain-gmae
> @@ -0,0 +1,3 @@
> +toolchain cvs
> +toolchain iptables
> +toolchain sudoku-savant
> diff --git a/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
> new file mode 100644
> index 0000000..199176e
> --- /dev/null
> +++ b/scripts/qemuimage-tests/scenario/qemuppc/meta-toolchain-gmae
> @@ -0,0 +1,3 @@
> +toolchain cvs
> +toolchain iptables
> +toolchain sudoku-savant
> diff --git a/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
> new file mode 100644
> index 0000000..199176e
> --- /dev/null
> +++ b/scripts/qemuimage-tests/scenario/qemux86-64/meta-toolchain-gmae
> @@ -0,0 +1,3 @@
> +toolchain cvs
> +toolchain iptables
> +toolchain sudoku-savant
> diff --git a/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae b/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
> new file mode 100644
> index 0000000..199176e
> --- /dev/null
> +++ b/scripts/qemuimage-tests/scenario/qemux86/meta-toolchain-gmae
> @@ -0,0 +1,3 @@
> +toolchain cvs
> +toolchain iptables
> +toolchain sudoku-savant
> diff --git a/scripts/qemuimage-tests/toolchain/cvs b/scripts/qemuimage-tests/toolchain/cvs
> new file mode 100755
> index 0000000..871d991
> --- /dev/null
> +++ b/scripts/qemuimage-tests/toolchain/cvs
> @@ -0,0 +1,31 @@
> +#!/bin/bash
> +#
> +# CVS compile Test for toolchain test
> +# The case extract toolchain tarball into temp folder
> +# Then compile CVS with the toolchain environment
> +#
> +# Author: Jiajun Xu<jiajun.xu@intel.com>
> +#
> +# This file is licensed under the GNU General Public License,
> +# Version 2.
> +#
> +. $COREBASE/scripts/qemuimage-testlib
> +
> +TIMEOUT=120
> +
> +# Extract and test toolchain tarball
> +Test_Toolchain cvs ${TIMEOUT}
> +
> +if [ $? -eq 0 ]; then
> +	Test_Info "CVS Test PASS"
> +	Test_Print_Result "CVS" 0
> +	exit 0
> +elif [ $? -eq 1 ]; then
> +	Test_Info "CVS Test FAIL"
> +	Test_Print_Result "CVS" 1
> +	exit 1
> +else
> +	Test_Info "Skip CVS Test due to some configuration problem"
> +	Test_Print_Result "CVS" 2
> +	exit 2
> +fi
> diff --git a/scripts/qemuimage-tests/toolchain/iptables b/scripts/qemuimage-tests/toolchain/iptables
> new file mode 100755
> index 0000000..af89bbe
> --- /dev/null
> +++ b/scripts/qemuimage-tests/toolchain/iptables
> @@ -0,0 +1,31 @@
> +#!/bin/bash
> +#
> +# iptables compile Test for toolchain test
> +# The case extract toolchain tarball into temp folder
> +# Then compile iptables with the toolchain environment
> +#
> +# Author: Jiajun Xu<jiajun.xu@intel.com>
> +#
> +# This file is licensed under the GNU General Public License,
> +# Version 2.
> +#
> +. $COREBASE/scripts/qemuimage-testlib
> +
> +TIMEOUT=120
> +
> +# Extract and test toolchain tarball
> +Test_Toolchain iptables ${TIMEOUT}
> +
> +if [ $? -eq 0 ]; then
> +	Test_Info "iptables Test PASS"
> +	Test_Print_Result "iptables" 0
> +	exit 0
> +elif [ $? -eq 1 ]; then
> +	Test_Info "iptables Test FAIL"
> +	Test_Print_Result "iptables" 1
> +	exit 1
> +else
> +	Test_Info "Skip iptables Test due to some configuration problem"
> +	Test_Print_Result "iptables" 2
> +	exit 2
> +fi
> diff --git a/scripts/qemuimage-tests/toolchain/sudoku-savant b/scripts/qemuimage-tests/toolchain/sudoku-savant
> new file mode 100755
> index 0000000..603afe6
> --- /dev/null
> +++ b/scripts/qemuimage-tests/toolchain/sudoku-savant
> @@ -0,0 +1,31 @@
> +#!/bin/bash
> +#
> +# sudoku-savant compile Test for toolchain test
> +# The case extract toolchain tarball into temp folder
> +# Then compile sudoku-savant with the toolchain environment
> +#
> +# Author: Jiajun Xu<jiajun.xu@intel.com>
> +#
> +# This file is licensed under the GNU General Public License,
> +# Version 2.
> +#
> +. $COREBASE/scripts/qemuimage-testlib
> +
> +TIMEOUT=120
> +
> +# Extract and test toolchain tarball
> +Test_Toolchain sudoku-savant ${TIMEOUT}
> +
> +if [ $? -eq 0 ]; then
> +	Test_Info "sudoku-savant Test PASS"
> +	Test_Print_Result "sudoku-savant" 0
> +	exit 0
> +elif [ $? -eq 1 ]; then
> +	Test_Info "sudoku-savant Test FAIL"
> +	Test_Print_Result "sudoku-savant" 1
> +	exit 1
> +else
> +	Test_Info "Skip sudoku-savant Test due to some configuration problem"
> +	Test_Print_Result "sudoku-savant" 2
> +	exit 2
> +fi



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest
  2011-04-29  5:10   ` Saul Wold
@ 2011-04-29  6:19     ` Xu, Jiajun
  2011-04-30  6:32       ` Saul Wold
  0 siblings, 1 reply; 5+ messages in thread
From: Xu, Jiajun @ 2011-04-29  6:19 UTC (permalink / raw)
  To: Wold, Saul; +Cc: poky@yoctoproject.org

>> diff --git a/meta/classes/populate_sdk.bbclass
>> b/meta/classes/populate_sdk.bbclass
>> index 413eb52..70670ba 100644
>> --- a/meta/classes/populate_sdk.bbclass
>> +++ b/meta/classes/populate_sdk.bbclass
>> @@ -1,6 +1,9 @@
>>   inherit meta toolchain-scripts
>>   inherit populate_sdk_${IMAGE_PKGTYPE}
>> +IMAGETEST ?= "dummy"
>> +inherit imagetest-${IMAGETEST}
>> +
> Why does this need to be added here?
> 
> I understand that when IMAGETEST is set to qemu in the local.conf file
> that it will be pulled in, but why to populate_sdk?
> 

Hi Saul,
Do you mean IMAGETEST should not be inherited in populate_sdk? Do you think it OK to inherit IMAGETEST in meta-toolchain.bb?

diff --git a/meta/recipes-core/meta/meta-toolchain.bb b/meta/recipes-core/meta/meta-toolchain.bb
index 94c8a91..ab98bf9 100644
--- a/meta/recipes-core/meta/meta-toolchain.bb
+++ b/meta/recipes-core/meta/meta-toolchain.bb
@@ -6,6 +6,7 @@ PR = "r4"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

-inherit populate_sdk
+IMAGETEST ?= "dummy"
+inherit populate_sdk imagetest-${IMAGETEST}


> Sau!

Best Regards,
Jiajun




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest
  2011-04-29  6:19     ` Xu, Jiajun
@ 2011-04-30  6:32       ` Saul Wold
  0 siblings, 0 replies; 5+ messages in thread
From: Saul Wold @ 2011-04-30  6:32 UTC (permalink / raw)
  To: Xu, Jiajun; +Cc: poky@yoctoproject.org

On 04/28/2011 11:19 PM, Xu, Jiajun wrote:
>>> diff --git a/meta/classes/populate_sdk.bbclass
>>> b/meta/classes/populate_sdk.bbclass
>>> index 413eb52..70670ba 100644
>>> --- a/meta/classes/populate_sdk.bbclass
>>> +++ b/meta/classes/populate_sdk.bbclass
>>> @@ -1,6 +1,9 @@
>>>    inherit meta toolchain-scripts
>>>    inherit populate_sdk_${IMAGE_PKGTYPE}
>>> +IMAGETEST ?= "dummy"
>>> +inherit imagetest-${IMAGETEST}
>>> +
>> Why does this need to be added here?
>>
>> I understand that when IMAGETEST is set to qemu in the local.conf file
>> that it will be pulled in, but why to populate_sdk?
>>
>
> Hi Saul,
> Do you mean IMAGETEST should not be inherited in populate_sdk? Do you think it OK to inherit IMAGETEST in meta-toolchain.bb?
>
Jiajun,

No, I am trying to understand where the connection of having the inherit 
here at all?  I don't see where the imagetest is used, maybe I am not 
seeing the whole picture currectly.

Sau!

> diff --git a/meta/recipes-core/meta/meta-toolchain.bb b/meta/recipes-core/meta/meta-toolchain.bb
> index 94c8a91..ab98bf9 100644
> --- a/meta/recipes-core/meta/meta-toolchain.bb
> +++ b/meta/recipes-core/meta/meta-toolchain.bb
> @@ -6,6 +6,7 @@ PR = "r4"
>   LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
>                       file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
>
> -inherit populate_sdk
> +IMAGETEST ?= "dummy"
> +inherit populate_sdk imagetest-${IMAGETEST}
>
>
>> Sau!
>
> Best Regards,
> Jiajun
>
>
>



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-04-30  6:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-28 15:32 [PATCH 0/1] qemuimagetest: Enable toolchain automation tests in qemuimagetest Jiajun Xu
2011-04-28 15:32 ` [PATCH 1/1] " Jiajun Xu
2011-04-29  5:10   ` Saul Wold
2011-04-29  6:19     ` Xu, Jiajun
2011-04-30  6:32       ` Saul Wold

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.