xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts
@ 2021-10-22 16:13 Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 1/5] make-flight: do_examine_one: add firmware argument Ian Jackson
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Roger Pau Monné, Jan Beulich

There is an infelicity in handling of FreeBSD's "memdisk" test.

The use of this step is as part of host examination.  There, it may
fail on hosts which cannot cope with the FreeBSD version in use.  That
is OK (from a general osstest/CI POV) because each host has its own
job name and therefore its own regression tracking.  So this test
failing on those hosts is not troublesome.

But as part of the tests for osstest itself, and Xen and Linux, we
also check that host examination still works.  This is appropriate
because host examination also checks that we can retrieve accurate
serial logs, etc.

To this end many general flights have test-*-examine jobs.

Like any job, these are peripatetic.  The x86 ones might run on BIOS
hosts, or UEFI hosts.  But our support for FreeBSD does not cope with
UEFI yet.  The result is that whether this test passes or fails
depends on the host, but this is not a heisenbug which should be fixed
right away.

Sort this out as follows:

* Have the examine test only run the FreeBSD step when the host
  firmware is BIOS.  On non-FreeBSD hosts the test step will go from
  "fail" to "skip", which is appropriate.

* To make sure we catch actual regressions in this step, make a copy
  of the examine job which is always run on a BIOS host.

* While we are here, explicitly check that the examine job works on
  x86 UEFI too.


4.16 release implications:

There are two sets of changes here:

I. flight composition:

The runvar dump shows that this only adds new jobs.  I think these new
tests are good, but of course they might be broken somehow.  If they
are broken, they are new jobs which won't count as regressions, and if
they flap we can force push while we disable them again.

II. behavioural change to ts-memdisk-try-append

This change is *intended* to make the test "skip" in cases where it is
currently "fail".  I have done an ad-hoc check that this seems to DTRT
but it might be bad somehow.

However, this test is currently actually-failing on the xen-unstable
branch.  And it could be force pushed if necessary.

III. Benefits

The benefit of all this is to improve the testing for 4.16.  In
particular, the examine test ought now to run properly, and no longer
cause blockages.

I think at this stage of the release this change to osstest ought to
have a release-ack but I think I have convinced myself it's OK, so:
Release-Acked-By: Ian Jackson <iwj@xenproject.org>


Ian Jackson (5):
  make-flight: do_examine_one: add firmware argument
  ts-memdisk-try-append: Reindent (nfc)
  ts-memdisk-try-append: Enable perl warnings
  ts-memdisk-try-append: More defensive case test
  examination: skip memdisk on non-BIOS hosts, run on some BIOS hosts

 make-flight           | 23 ++++++++++++++++++++--
 mfi-common            |  1 +
 ts-memdisk-try-append | 45 +++++++++++++++++++++++++++++--------------
 3 files changed, 53 insertions(+), 16 deletions(-)

-- 
2.20.1



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

* [OSSTEST PATCH 1/5] make-flight: do_examine_one: add firmware argument
  2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
@ 2021-10-22 16:13 ` Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 2/5] ts-memdisk-try-append: Reindent (nfc) Ian Jackson
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

Nothing sets this yet.

No functional change (checked with standalone-generate-dump-flight-runvars)

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 make-flight | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/make-flight b/make-flight
index ecbb195bc..acb19b113 100755
--- a/make-flight
+++ b/make-flight
@@ -687,20 +687,31 @@ do_pv_debian_tests () {
 }
 
 do_examine_one () {
+  local firmware="$1"
+
   case "$branch" in
     xen-unstable)		;; # only likely to regress on -unstable
     osstest)			;; # very likely to regress
     linux-*)			;; # often seems to regress
     *)			return	;; # stuff used for guests is irrelevant
   esac
+
+  local firmware_suffix
+  local firmware_hostflag
+  if [ "$firmware" ]; then
+    firmware_suffix=-$firmware
+    firmware_hostflag=,PropEq:Firmware:bios:$firmware
+  fi
+
   local freebsd_runvars
   # set_freebsd_runvars expects $arch to be set to the desired FreeBSD arch.
   local arch=$dom0arch
   # Pass true to not append any hostflags when creating the FreeBSD runvars.
   set_freebsd_runvars true
-  job_create_test test-$xenarch$kern-$dom0arch-examine \
+  job_create_test test-$xenarch$kern-$dom0arch-examine${firmware_suffix} \
                   host-examine-xen xl $xenarch $dom0arch \
-                  all_hostflags=$most_hostflags $freebsd_runvars
+                  all_hostflags=$most_hostflags$firmware_hostflag \
+                  $freebsd_runvars
 }
 
 test_matrix_do_one () {
-- 
2.20.1



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

* [OSSTEST PATCH 2/5] ts-memdisk-try-append: Reindent (nfc)
  2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 1/5] make-flight: do_examine_one: add firmware argument Ian Jackson
@ 2021-10-22 16:13 ` Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 3/5] ts-memdisk-try-append: Enable perl warnings Ian Jackson
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-memdisk-try-append | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/ts-memdisk-try-append b/ts-memdisk-try-append
index 4b54eff01..a35751eb3 100755
--- a/ts-memdisk-try-append
+++ b/ts-memdisk-try-append
@@ -19,17 +19,17 @@
 set -xe -o posix
 
 arch=`perl -I. -e '
-                use Osstest;
-                use Osstest::TestSupport;
+    use Osstest;
+    use Osstest::TestSupport;
 
-                tsreadconfig();
+    tsreadconfig();
 
-		our $whhost = pop @ARGV; # arg parsing bodge
-		$whhost ||= "host";
-		our $ho = selecthost($whhost);
+    our $whhost = pop @ARGV; # arg parsing bodge
+    $whhost ||= "host";
+    our $ho = selecthost($whhost);
 
-                print $ho->{Arch} or die $!;
-              ' "$@"`
+    print $ho->{Arch} or die $!;
+    ' "$@"`
 
 case "$arch" in
 amd64)
-- 
2.20.1



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

* [OSSTEST PATCH 3/5] ts-memdisk-try-append: Enable perl warnings
  2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 1/5] make-flight: do_examine_one: add firmware argument Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 2/5] ts-memdisk-try-append: Reindent (nfc) Ian Jackson
@ 2021-10-22 16:13 ` Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 4/5] ts-memdisk-try-append: More defensive case test Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 5/5] examination: skip memdisk on non-BIOS hosts, run per-firmware on x86 Ian Jackson
  4 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-memdisk-try-append | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ts-memdisk-try-append b/ts-memdisk-try-append
index a35751eb3..bfb36caf7 100755
--- a/ts-memdisk-try-append
+++ b/ts-memdisk-try-append
@@ -18,7 +18,7 @@
 
 set -xe -o posix
 
-arch=`perl -I. -e '
+arch=`perl -I. -we '
     use Osstest;
     use Osstest::TestSupport;
 
-- 
2.20.1



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

* [OSSTEST PATCH 4/5] ts-memdisk-try-append: More defensive case test
  2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
                   ` (2 preceding siblings ...)
  2021-10-22 16:13 ` [OSSTEST PATCH 3/5] ts-memdisk-try-append: Enable perl warnings Ian Jackson
@ 2021-10-22 16:13 ` Ian Jackson
  2021-10-22 16:13 ` [OSSTEST PATCH 5/5] examination: skip memdisk on non-BIOS hosts, run per-firmware on x86 Ian Jackson
  4 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 ts-memdisk-try-append | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/ts-memdisk-try-append b/ts-memdisk-try-append
index bfb36caf7..d5c12866f 100755
--- a/ts-memdisk-try-append
+++ b/ts-memdisk-try-append
@@ -34,14 +34,14 @@ arch=`perl -I. -we '
 case "$arch" in
 amd64)
     ;;
-'')
-    echo >&2 'Job arch retrieval failed?'
-    exit 1
-    ;;
-*)
+[a-z]*)
     echo "Arch $arch not supported for memdisk tests"
     exit 0
     ;;
+*)
+    echo >&2 'Job arch retrieval failed?'
+    exit 1
+    ;;
 esac
 
 if ./ts-freebsd-host-install --test-boot --record-append $@; then
-- 
2.20.1



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

* [OSSTEST PATCH 5/5] examination: skip memdisk on non-BIOS hosts, run per-firmware on x86
  2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
                   ` (3 preceding siblings ...)
  2021-10-22 16:13 ` [OSSTEST PATCH 4/5] ts-memdisk-try-append: More defensive case test Ian Jackson
@ 2021-10-22 16:13 ` Ian Jackson
  4 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2021-10-22 16:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson

This is a combination of two changes:

ts-memdisk-try-append: skip memdisk test on non-BIOS hosts

make-flight: examine: Insist on -bios and -uefi tests on x86

  This will let us skip ts-memdisk-try-append on non-bios platforms
  without risking regression.  It will also definitely spot
  regressions which will occur on any uefi host.

  standalone-generate-dump-flight-runvars reveals the changes are as
  follows:

  New jobs
     test-amd64-i386-examine-bios     test-amd64-i386-examine-uefi
     test-amd64-amd64-examine-bios    test-amd64-amd64-examine-uefi
  added everywhere that has the corresponding plain job, namely
     osstest
     linux-*
     xen-unstable

  These jobs are just like the plain jobs, except that one of
     ,PropEq:Firmware:bios:bios
     ,PropEq:Firmware:bios:uefi
  has been added to the end of all_hostflags.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 make-flight           |  9 +++++++++
 mfi-common            |  1 +
 ts-memdisk-try-append | 17 +++++++++++++++++
 3 files changed, 27 insertions(+)

diff --git a/make-flight b/make-flight
index acb19b113..d7eeb4ebb 100755
--- a/make-flight
+++ b/make-flight
@@ -736,6 +736,15 @@ test_matrix_do_one () {
   do_credit12_tests
 
   do_examine_one
+  case "$dom0arch" in
+    i386|amd64)
+      # Test on BIOS, which makes sure we test one where FreeBSD should
+      # work.  See ts-memdisk-try-append, and set_freebsd_runvars in
+      # mfi-common.
+      do_examine_one bios
+      do_examine_one uefi
+      ;;
+  esac
 
   # No further arm tests at the moment
   if [ $dom0arch = armhf -o $dom0arch = arm64 ]; then
diff --git a/mfi-common b/mfi-common
index 771843f05..59e712f4e 100644
--- a/mfi-common
+++ b/mfi-common
@@ -163,6 +163,7 @@ set_freebsd_runvars () {
     if [ x$no_hostflags != xtrue ]; then
         # osstest doesn't yet know how to install FreeBSD on UEFI hosts, so
         # limit the usable hardware to boxes that boot from BIOS.
+        # See also in ts-memdisk-try-append.
         freebsd_runvars="all_hostflags,=PropEq:Firmware:bios:bios"
     fi
 
diff --git a/ts-memdisk-try-append b/ts-memdisk-try-append
index d5c12866f..8fd6540b8 100755
--- a/ts-memdisk-try-append
+++ b/ts-memdisk-try-append
@@ -28,6 +28,20 @@ arch=`perl -I. -we '
     $whhost ||= "host";
     our $ho = selecthost($whhost);
 
+    if (get_target_property($ho,"firmware") ne "bios") {
+        # osstest does not yet know how to install FreeBSD on UEFI hosts
+	# See also in set_freebsd_runvars in mfi_common
+
+	# Skipping this test on non-BIOS does not lead to pushes
+	# where this test is broken, because make-flght test_matrix_do_one
+	# arranges to run this test on BIOS too.
+
+        broken("skipping memdisk because firmware is not bios",
+	       "skip");
+	print "SKIP\n" or die $!;
+	exit 0;
+    }
+
     print $ho->{Arch} or die $!;
     ' "$@"`
 
@@ -37,6 +51,9 @@ amd64)
 [a-z]*)
     echo "Arch $arch not supported for memdisk tests"
     exit 0
+SKIP)
+    echo "Step skipped."
+    exit 0
     ;;
 *)
     echo >&2 'Job arch retrieval failed?'
-- 
2.20.1



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

end of thread, other threads:[~2021-10-22 16:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-22 16:13 [OSSTEST PATCH 0/5] Only run ts-memdisk-try-append on BIOS hosts Ian Jackson
2021-10-22 16:13 ` [OSSTEST PATCH 1/5] make-flight: do_examine_one: add firmware argument Ian Jackson
2021-10-22 16:13 ` [OSSTEST PATCH 2/5] ts-memdisk-try-append: Reindent (nfc) Ian Jackson
2021-10-22 16:13 ` [OSSTEST PATCH 3/5] ts-memdisk-try-append: Enable perl warnings Ian Jackson
2021-10-22 16:13 ` [OSSTEST PATCH 4/5] ts-memdisk-try-append: More defensive case test Ian Jackson
2021-10-22 16:13 ` [OSSTEST PATCH 5/5] examination: skip memdisk on non-BIOS hosts, run per-firmware on x86 Ian Jackson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).