#!/bin/bash set -e max_test_count=10 go_anyway=false for arg in "$@"; do case "$arg" in !*) arg="${arg#!}" ;; *) onepackage_args[${#onepackage_args[*]}]="${arg#@}" ;; esac case "$arg" in @*) ;; *=*) eval "$arg" ;; *) . "$arg" ;; esac done if [ "x$distro" = x ]; then : ${testbed_check_path:=/var/lib/autopkgtest/xenlvm/adt_${distro}/good} else : ${testbed_check_path:=/dev/null} fi if [ "x$test_classes" = x]; then : ${architecture:=`dpkg --print-architecture`} test_classes="source $distro, target=source : binary $distro, target=binary-$architecture" fi fail () { printf >&2 "%s\n" "$*"; exit 127; } progress () { printf "========== %s ==========\n" "$1"; } x () { printf "+ %s\n" "$*"; "$@"; } x2 () { printf >&2 "+ %s\n" "$*"; "$@"; } progress testing test_count=0 while ($go_anyway || test -f go) && test $test_count -lt $max_test_count; do now=`date` printf "%s" "$now: " if ! test -e $testbed_check_path; then printf " testbed broken, bailing\n" break fi xopts="${test_classes%%:*}" xopts_opts="${xopts#*,}" test_classes="${test_classes#*:}:$xopts" printf "considering (%s) " "$xopts_opts" anybroken=false for x in ${xopts%%,*}; do if test -f "stop-$x"; then printf " skipping because of %s" "$x" anybroken=true break fi done if $anybroken; then printf "\n" continue fi adt-testreport-onepackage \ adtrun_extra_opts=--built-binaries-filter=__ \ interactive=false \ "${onepackage_args[@]}" \ $xopts_opts test_count=$(( $test_count + 1 )) done progress 'stopping'