Open iximeow opened 1 month ago
... realized this morning that the immediate failure i'd observed above was because my Ubuntu guest adapter included some changes i was also going to propose: use passwordless root
instead of ubuntu
there. with an image configured more like the in-tree PHD adapter expects it just hangs at [sudo] password for ubuntu:
and timeout fails instead :(
disclaimer: this is because of a framework bug, not a Propolis bug. i noticed that
lspci_lifecycle_test
fails on an Ubuntu 22.04 guest image i'd put together, and at first thought it was wrong, but the truth is stranger than fiction...in
lspci_lifecycle_test
we run bothlspci
andlshw
: https://github.com/oxidecomputer/propolis/blob/93ed767388c4fab11af8a98ad33fdbeac4098b0c/phd-tests/tests/src/hw.rs#L21-L29on an Ubuntu guest, the
lshw
assert fails because before and after messages don't match. the difference in the (rather large) strings of output is only that the machine'sserial
does not match after being stopped and started. i double-checked on a real instance, and a Debian 11 guest's observed value forserial
is in fact the instance's ID, and that ID is stable across a stop and start. again, test bug not real bug.the immediate issue in the test framework is that in the test we validate that
lshw
andlspci
agree across aStopAndStart
, but that action involves spawning a successor VM which makes a newTestVm
and in turn gets a new id.TestVm
if all we're doing is aStopAndStart
. seems like this is the only test usingStopAndStart
, so that's simple enough.why in the world did this pass with Alpine or Debian images though? i'm glad you've asked!
assert_eq!("-ash: lshw: not found", "-ash: lshw: not found")
or equivalent error from bash will pass every time :) i only have anlshw
out-of-the-box on this Ubuntu image, which seems to be why it only fails there.run_shell_command
ought to check that the shell command that was run returned 0, and force test authors to deal with unexpected test command failures