diff options
author | Yuri Bushmelev <jay4mail@gmail.com> | 2010-12-31 10:42:30 +0300 |
---|---|---|
committer | Yuri Bushmelev <jay4mail@gmail.com> | 2010-12-31 10:42:30 +0300 |
commit | 9626d09a31366e7c190f1daea99bdff7b49dd657 (patch) | |
tree | 4a626f193254499b23134316f7dc338d0e5971d5 /contrib/testing | |
parent | 7993e4ca7746a4ca9e7116cc76e6c1da32a76690 (diff) | |
download | openembedded-9626d09a31366e7c190f1daea99bdff7b49dd657.tar.gz |
contrib testbuilder: update to 0.3.1
Diffstat (limited to 'contrib/testing')
-rwxr-xr-x | 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 aacaff31d4..b86c8303d9 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 |