[oe-commits] Yuri Bushmelev : contrib testbuilder: update to 0.3.1

git version control git at git.openembedded.org
Fri Dec 31 07:48:11 UTC 2010


Module: openembedded.git
Branch: master
Commit: 9626d09a31366e7c190f1daea99bdff7b49dd657
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=9626d09a31366e7c190f1daea99bdff7b49dd657

Author: Yuri Bushmelev <jay4mail at gmail.com>
Date:   Fri Dec 31 10:42:30 2010 +0300

contrib testbuilder: update to 0.3.1

---

 contrib/testing/testbuilder/testbuilder |   80 ++++++++++++++++++-------------
 1 files changed, 46 insertions(+), 34 deletions(-)

diff --git a/contrib/testing/testbuilder/testbuilder b/contrib/testing/testbuilder/testbuilder
index aacaff3..b86c830 100755
--- a/contrib/testing/testbuilder/testbuilder
+++ b/contrib/testing/testbuilder/testbuilder
@@ -12,7 +12,7 @@
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-VERSION="0.3"
+VERSION="0.3.1"
 PACKAGE="TestBuilder"
 
 TB_DIR=`dirname $0`
@@ -23,10 +23,10 @@ tb_usage() {
 	echo "${PACKAGE} v${VERSION}"
 	# Run only specified build
 	echo "Usage: ${TB_NAME} -Vh"
-	echo "   or  ${TB_NAME} [-B build ]"
+	echo "   or  ${TB_NAME} [-B build [-D distro] [-M machine] [-S]]"
 	# Behave like DISTRO=distro MACHINE=machine bitbake images
 	# with -S testbuilder will only setup env and run interactive sub-shell
-	echo "   or  ${TB_NAME} [-D distro] [-M machine] [-T /full/path/to/tmpdir] [-S | images]"
+	echo "   or  ${TB_NAME} -D distro -M machine [-T /full/path/to/tmpdir] [-S | images]"
 }
 
 CFG_FILE="${TB_DIR}/testbuilder.conf"
@@ -68,6 +68,15 @@ tb_log() {
 	echo "[${_dt}] $@" >> $TB_LOG
 }
 
+tb_interactive_shell() {
+	echo "Distro:  $DISTRO"
+	echo "Machine: $MACHINE"
+	echo "TMPDIR:  $TMP_DIR"
+	echo "Starting shell $TB_SHELL. Use 'exit' or ^D to quit"
+	[ -n "${TB_PS1}" ] && export PS1=${TB_PS1}
+	eval $TB_SHELL
+}
+
 # Do vmstat accounting
 tb_accounting_vmstat() {
 	exec vmstat -n "${ACCOUNTING_INTERVAL}" >> "${LOG_DIR}/A.vmstat.log"
@@ -94,22 +103,24 @@ tb_kill_all() {
 # update git tree
 tb_git_update() {
 	local _dir=$1
+	local _cwd=`pwd`
 
 	cd "${_dir}"
 	tb_log "Updating git tree ${_dir}"
 	git pull
-	cd "${TB_DIR}"
+	cd "${_cwd}"
 }
 
 # checkout branch from git tree
 tb_git_branch() {
 	local _dir=$1
 	local _branch=$2
+	local _cwd=`pwd`
 
 	cd "${_dir}"
 	tb_log "Checking out branch ${_branch} from tree ${_dir}"
 	git checkout -f ${_branch}
-	cd "${TB_DIR}"
+	cd "${_cwd}"
 }
 
 
@@ -130,33 +141,38 @@ tb_build_machines() {
 
 	for _machine in $_MLIST; do
 		[ "${_machine}" != "${_machine#!}" ] && continue
-
-		tb_log "${_machine} build started, images: ${_bbimages}"
+		[ -n "${OMACHINE}" -a "${_machine#!}" != "${OMACHINE}" ] && continue
 
 		export MACHINE=$_machine
 
-		case "${SEPARATE_BUILD}" in
-		[Yy][Ee][Ss])
-			# Build images separately
-			for _image in $_bbimages; do
-				tb_log "${_image} build started"
-				_log="${LOG_DIR}/B.${build}.${DISTRO}.${_machine}.${_image}.log"
+		if [ -n "${DO_RUN_SHELL}" ]; then
+			tb_interactive_shell
+		else
+
+			tb_log "${_machine} build started, images: ${_bbimages}"
+			case "${SEPARATE_BUILD}" in
+			[Yy][Ee][Ss])
+				# Build images separately
+				for _image in $_bbimages; do
+					tb_log "${_image} build started"
+					_log="${LOG_DIR}/B.${build}.${DISTRO}.${_machine}.${_image}.log"
+					[ -f "${_log}" ] && mv "${_log}" "${_log}.0"
+					bitbake ${BB_OPTS} ${_image} 2>&1 | tee "${_log}"
+					_rc=$?
+					tb_log "${_image} build finished. Exit code: ${_rc}."
+				done
+				;;
+			*)
+				# Build all images with one bitbake invocation
+				_log="${LOG_DIR}/B.${build}.${DISTRO}.${_machine}.log"
 				[ -f "${_log}" ] && mv "${_log}" "${_log}.0"
-				bitbake ${BB_OPTS} ${_image} 2>&1 | tee "${_log}"
+				bitbake ${BB_OPTS} ${_bbimages} 2>&1 | tee "${_log}"
 				_rc=$?
-				tb_log "${_image} build finished. Exit code: ${_rc}."
-			done
-			;;
-		*)
-			# Build all images with one bitbake invocation
-			_log="${LOG_DIR}/B.${build}.${DISTRO}.${_machine}.log"
-			[ -f "${_log}" ] && mv "${_log}" "${_log}.0"
-			bitbake ${BB_OPTS} ${_bbimages} 2>&1 | tee "${_log}"
-			_rc=$?
-			;;
-		esac
-		
-		tb_log "${_machine} build finished. Exit code:${_rc}."
+				;;
+			esac
+			
+			tb_log "${_machine} build finished. Exit code:${_rc}."
+		fi
 	done
 
 }
@@ -219,7 +235,7 @@ OIMAGES=$@
 trap "tb_kill_all" EXIT
 
 # Check for 'direct' mode
-if [ -n "${ODISTRO}" ]; then
+if [ -z "${OBUILD}" -a -n "${ODISTRO}" ]; then
 	DISTRO="${ODISTRO}"
 	MACHINE="${OMACHINE}"
 	TMP_DIR=${OTMPDIR:-${CLN_DIR}}
@@ -227,12 +243,7 @@ if [ -n "${ODISTRO}" ]; then
 
 	if [ -n "${DO_RUN_SHELL}" ]; then
 		# Run shell if -s option was given
-		echo "Distro:  $DISTRO"
-		echo "Machine: $MACHINE"
-		echo "TMPDIR:  $TMP_DIR"
-		echo "Starting shell $TB_SHELL. Use 'exit' or ^D to quit"
-		[ -n "${TB_PS1}" ] && export PS1=${TB_PS1}
-		eval $TB_SHELL
+		tb_interactive_shell
 	else
 		tb_build_machines "${MACHINE}" ${OIMAGES}
 	fi
@@ -289,6 +300,7 @@ for build in $BUILDS; do
 	eval DISTROS="\$DISTROS_${build}"
 	for distro in $DISTROS; do
 		[ "${distro}" != "${distro#!}" ] && continue
+		[ -n "${ODISTRO}" -a "${distro#!}" != "${ODISTRO}" ] && continue
 
 		export DISTRO=$distro
 





More information about the Openembedded-commits mailing list