chiark / gitweb /
* adt-testreport-onepackage: Handling of source packages'
[autopkgtest.git] / runner / adt-testreport-onepackage
index 9b4d83c063a40fc63a551dd3914d566c87cd82d6..3908e7ce9013bb343be1917125456e57567a48b4 100755 (executable)
@@ -99,6 +99,7 @@ if [ "x$pkg" = x ]; then
                return if $score < $best_score
                     or ($score==$best_score and \
                         $package gt $best_package);
+#printf STDERR " <----- best score=%s best_score=%s\n", $score, $best_score;
                $best_score= $score;
                $best_package= $package;
        }
@@ -124,8 +125,10 @@ if [ "x$pkg" = x ]; then
                        $score= 1e7 if $score>1e7;
                        $score *= 5 if $lastver{$package} ne $version;
                        $score *= 10 unless $extras{$package} =~ m/ nt /;
+#print STDERR "$package score $score\n";
                } elsif (m/^Architecture:.*/ &&
-                        !m/\s'$arch'\s/) {
+                        !m/\s(?:'$arch'|all|any)\s/) {
+#printf STDERR " <----- skip %s %s\n", $&, "'$arch'";
                        $skip= 1;
                } elsif (m/^$/) {
                        endpackage();
@@ -235,6 +238,7 @@ printf >&3 "%s " $rc
 
 ourx=0
 upload=true
+: ${upload_if_notests:=false}
 extras=''
 
 case "$rc" in
@@ -243,7 +247,7 @@ case "$rc" in
 2)     summary='OK (some skipped)';            email=''
                                        upload=$upload_if_ok            ;;
 8)     summary='package declares no tests';    email=''
-                                       upload=false; extras='nt'       ;;
+                               upload=$upload_if_notests; extras='nt'  ;;
 4|6)   summary='test(s) failed!';      email="$maintainer_email"       ;;
 12)    summary='erroneous package!';   email="$maintainer_email"       ;;
 16)    summary='testbed failed!';      email="administrator_email"     ;;
@@ -254,7 +258,8 @@ progress "RESULTS $summary"
 
 if $upload; then
        progress "bundling"
-       ln "$tmp"/_summary "$tp"/summary
+       printf "\n%s\n" "$summary" >>"$tmp"/_summary
+       ln -f "$tmp"/_summary "$tp"/summary
 
        for odir in tmp out; do
                if test -d "$tp"/$odir; then