[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 08/10] qtest/bios-tables-test: Make test build-independent
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v5 08/10] qtest/bios-tables-test: Make test build-independent from accelerator |
Date: |
Mon, 3 May 2021 14:44:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
Hi Igor,
On 5/3/21 2:36 PM, Igor Mammedov wrote:
> On Sun, 2 May 2021 00:36:36 +0200
> Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
>> Now than we can probe if the TCG accelerator is available
>> at runtime with a QMP command, do it once at the beginning
>> and only register the tests we can run.
>> We can then replace the #ifdef'ry by an assertion.
>>
>> Reviewed-by: Eric Blake <eblake@redhat.com>
>> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>> tests/qtest/bios-tables-test.c | 99 ++++++++++++++++++----------------
>> 1 file changed, 52 insertions(+), 47 deletions(-)
>>
>> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
>> index 156d4174aa3..a4c7bddf6f3 100644
>> --- a/tests/qtest/bios-tables-test.c
>> +++ b/tests/qtest/bios-tables-test.c
>> @@ -97,6 +97,7 @@ typedef struct {
>> QTestState *qts;
>> } test_data;
>>
>> +static bool tcg_accel_available;
>> static char disk[] = "tests/acpi-test-disk-XXXXXX";
>> static const char *data_dir = "tests/data/acpi";
>> #ifdef CONFIG_IASL
>> @@ -718,15 +719,11 @@ static void test_acpi_one(const char *params,
>> test_data *data)
>> char *args;
>> bool use_uefi = data->uefi_fl1 && data->uefi_fl2;
>>
>> -#ifndef CONFIG_TCG
>> - if (data->tcg_only) {
>> - g_test_skip("TCG disabled, skipping ACPI tcg_only test");
>> - return;
>> - }
>> -#endif /* CONFIG_TCG */
>> + assert(!data->tcg_only || tcg_accel_available);
>>
>> args = test_acpi_create_args(data, params, use_uefi);
>> data->qts = qtest_init(args);
>> +
> stray new line?
Oops.
>
>> test_acpi_load_tables(data, use_uefi);
>>
>> if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
>> @@ -1504,6 +1501,8 @@ int main(int argc, char *argv[])
>> const char *arch = qtest_get_arch();
>> int ret;
>>
>> + tcg_accel_available = qtest_has_accel("tcg");
>> +
>> g_test_init(&argc, &argv, NULL);
>>
>> if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
>> @@ -1512,56 +1511,62 @@ int main(int argc, char *argv[])
>> return ret;
>> }
>> qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35);
>> - qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
>> - qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
>> qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc);
>> - qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
>> + qtest_add_func("acpi/microvm/oem-fields",
>> test_acpi_oem_fields_microvm);
>> qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug",
>> test_acpi_piix4_no_root_hotplug);
>> qtest_add_func("acpi/piix4/pci-hotplug/no_bridge_hotplug",
>> test_acpi_piix4_no_bridge_hotplug);
>> qtest_add_func("acpi/piix4/pci-hotplug/off",
>> test_acpi_piix4_no_acpi_pci_hotplug);
>> - qtest_add_func("acpi/q35", test_acpi_q35_tcg);
>> - qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
>> - qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
>> - qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
>> - qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
>> - qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
>> - qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
>> - qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
>> - qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
>> - qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
>> - qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
>> - qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
>> - qtest_add_func("acpi/piix4/smm-compat",
>> - test_acpi_piix4_tcg_smm_compat);
>> - qtest_add_func("acpi/piix4/smm-compat-nosmm",
>> - test_acpi_piix4_tcg_smm_compat_nosmm);
>> - qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet);
>> - qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm);
>> - qtest_add_func("acpi/q35/smm-compat",
>> - test_acpi_q35_tcg_smm_compat);
>> - qtest_add_func("acpi/q35/smm-compat-nosmm",
>> - test_acpi_q35_tcg_smm_compat_nosmm);
>> - qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet);
>> - qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
>> - qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
>> - qtest_add_func("acpi/piix4/acpihmat",
>> test_acpi_piix4_tcg_acpi_hmat);
>> - qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat);
>> - qtest_add_func("acpi/microvm", test_acpi_microvm_tcg);
>> - qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg);
>> - qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg);
>> - qtest_add_func("acpi/microvm/ioapic2",
>> test_acpi_microvm_ioapic2_tcg);
>> - qtest_add_func("acpi/microvm/oem-fields",
>> test_acpi_oem_fields_microvm);
>> - if (strcmp(arch, "x86_64") == 0) {
>> - qtest_add_func("acpi/microvm/pcie", test_acpi_microvm_pcie_tcg);
>> + if (tcg_accel_available) {
>
> most of this can run without TCG if KVM is available, so why are you limiting
> it to TCG only
> or am I missing something?
This patch is a simple API change, these tests are already restricted by
the 'g_test_skip("TCG disabled, skipping ACPI tcg_only test");' call.
If someone is willing to send a patch to have them run without TCG, I'm
fine to rebase my series on top. Else it can also be done on top of my
series. Whichever you prefer, but I'd rather not delay Claudio's work
too long...
>
>> + qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
>> + qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
>> + qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
>> + qtest_add_func("acpi/q35", test_acpi_q35_tcg);
>> + qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
>> + qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
>> + qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
>> + qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
>> + qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
>> + qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
>> + qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
>> + qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
>> + qtest_add_func("acpi/piix4/numamem",
>> test_acpi_piix4_tcg_numamem);
>> + qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
>> + qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
>> + qtest_add_func("acpi/piix4/smm-compat",
>> + test_acpi_piix4_tcg_smm_compat);
>> + qtest_add_func("acpi/piix4/smm-compat-nosmm",
>> + test_acpi_piix4_tcg_smm_compat_nosmm);
>> + qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet);
>> + qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm);
>> + qtest_add_func("acpi/q35/smm-compat",
>> + test_acpi_q35_tcg_smm_compat);
>> + qtest_add_func("acpi/q35/smm-compat-nosmm",
>> + test_acpi_q35_tcg_smm_compat_nosmm);
>> + qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet);
>> + qtest_add_func("acpi/piix4/dimmpxm",
>> test_acpi_piix4_tcg_dimm_pxm);
>> + qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
>> + qtest_add_func("acpi/piix4/acpihmat",
>> + test_acpi_piix4_tcg_acpi_hmat);
>> + qtest_add_func("acpi/q35/acpihmat",
>> test_acpi_q35_tcg_acpi_hmat);
>> + qtest_add_func("acpi/microvm", test_acpi_microvm_tcg);
>> + qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg);
>> + qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg);
>> + qtest_add_func("acpi/microvm/ioapic2",
>> + test_acpi_microvm_ioapic2_tcg);
>> + if (strcmp(arch, "x86_64") == 0) {
>> + qtest_add_func("acpi/microvm/pcie",
>> test_acpi_microvm_pcie_tcg);
>> + }
>> }
>> } else if (strcmp(arch, "aarch64") == 0) {
>> - qtest_add_func("acpi/virt", test_acpi_virt_tcg);
>> - qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem);
>> - qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp);
>> - qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb);
>> + if (tcg_accel_available) {
>> + qtest_add_func("acpi/virt", test_acpi_virt_tcg);
>> + qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem);
>> + qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp);
>> + qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb);
>> + }
>> qtest_add_func("acpi/virt/oem-fields", test_acpi_oem_fields_virt);
>> }
>> ret = g_test_run();
>
- Re: [PATCH v5 02/10] accel: Introduce 'query-accels' QMP command, (continued)
- [PATCH v5 03/10] tests/qtest: Add qtest_has_accel() method, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 04/10] qtest/arm-cpu-features: Use generic qtest_has_accel() to check for KVM, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 05/10] qtest/arm-cpu-features: Restrict sve_tests_sve_off_kvm test to KVM, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 06/10] qtest/arm-cpu-features: Remove TCG fallback to KVM specific tests, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 07/10] qtest/arm-cpu-features: Use generic qtest_has_accel() to check for TCG, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 08/10] qtest/bios-tables-test: Make test build-independent from accelerator, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 09/10] qtest/migration-test: Skip tests if KVM not builtin on s390x/ppc64, Philippe Mathieu-Daudé, 2021/05/01
- [PATCH v5 10/10] qtest: Do not restrict bios-tables-test to Aarch64 hosts anymore, Philippe Mathieu-Daudé, 2021/05/01