On Tue, Feb 02, 2021 at 03:28:02PM +0100, Kevin Wolf wrote: > If the qemu-system-{arch} binary for the host architecture can't be > found, the old 'check' implementation selected the alphabetically first > system emulator binary that it could find. The new Python implementation > just uses the first result of glob.iglob(), which has an undefined > order. > > This is a problem that breaks CI because the iotests aren't actually > prepared to run on any emulator. They should be, so this is really a bug > in the failing test cases that should be fixed there, but as a quick > fix, let's revert to the old behaviour to let CI runs succeed again.
Deterministic CI is critically important. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > tests/qemu-iotests/testenv.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> > > diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py > index b31275f518..1fbec854c1 100644 > --- a/tests/qemu-iotests/testenv.py > +++ b/tests/qemu-iotests/testenv.py > @@ -135,7 +135,7 @@ class TestEnv(ContextManager['TestEnv']): > if not os.path.exists(self.qemu_prog): > pattern = root('qemu-system-*') > try: > - progs = glob.iglob(pattern) > + progs = sorted(glob.iglob(pattern)) > self.qemu_prog = next(p for p in progs if isxfile(p)) > except StopIteration: > sys.exit("Not found any Qemu executable binary by pattern " > -- > 2.29.2 > Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|