Peter Maydell <[email protected]> writes: > On a KVM-only (--disable-tcg) build, the iommu-smmuv3 qtest fails: > > qemu-system-aarch64: QTest does not support GICv3 emulation > Broken pipe > ../../tests/qtest/libqtest.c:201: kill_qemu() tried to terminate QEMU process > but encountered exit status 1 (expected 0) > > This is because the test runs the virt board with the qtest > accelerator and gic-version=3. In the virt board this selects the > TCG (emulated) GICv3, but in a --disable-tcg build we don't compile > that device, only the KVM GICv3 (which isn't usable with qtest). > > Add a check to the test so we skip it if the arm-gicv3 device isn't > in the QEMU binary. > > Cc: [email protected] > Fixes: d8d19c31b220142641 ("tests/qtest: Add SMMUv3 bare-metal test using > iommu-testdev") > Signed-off-by: Peter Maydell <[email protected]> > --- > Looks like our CI compile-tests the --disable-tcg build but doesn't > try to run "make check" on it. > --- > tests/qtest/iommu-smmuv3-test.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/tests/qtest/iommu-smmuv3-test.c b/tests/qtest/iommu-smmuv3-test.c > index dae9821b92..708fae5fd3 100644 > --- a/tests/qtest/iommu-smmuv3-test.c > +++ b/tests/qtest/iommu-smmuv3-test.c > @@ -64,6 +64,11 @@ static void run_smmuv3_translation(const QSMMUTestConfig > *cfg) > g_test_skip("virt machine not available"); > return; > } > + if (!qtest_has_device("arm-gicv3")) { > + /* This can happen for a KVM-only build: qtest uses the TCG GICv3 */ > + g_test_skip("gicv3 not available"); > + return; > + } > > /* Initialize QEMU environment for SMMU testing */ > qts = qtest_init("-machine virt,acpi=off,gic-version=3,iommu=smmuv3 "
Reviewed-by: Fabiano Rosas <[email protected]>
