diff mbox series

[v4,10/11] tests/acpi: unit test exercizing hotplug off for pci root bus & bridge in i440fx

Message ID 20200916061335.14045-11-ani@anisinha.ca
State New
Headers show
Series i440fx/acpi: addition of feature and bug fixes. | expand

Commit Message

Ani Sinha Sept. 16, 2020, 6:13 a.m. UTC
This change adds a unit test to exercize the case when hotplug is disabled both for
pci root bus and the pci bridges by passing the following two switches to qemu:

  -global PIIX4_PM.acpi-root-pci-hotplug=off
  -global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off

bios-tables-test-allowed-diff.h documents the fact that a new DSDT acpi gold master
binary blob we need to be added to test this. We will do the actual addition in the
next patch in the series.

The following link contains the disassembly of the DSDT table after passing the above
two switches to qemu: https://pastebin.ubuntu.com/p/WvpYYjpPN8/

Signed-off-by: Ani Sinha <ani@anisinha.ca>
---
 tests/qtest/bios-tables-test-allowed-diff.h |  1 +
 tests/qtest/bios-tables-test.c              | 19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

Comments

Igor Mammedov Sept. 16, 2020, 7:11 a.m. UTC | #1
On Wed, 16 Sep 2020 11:43:34 +0530
Ani Sinha <ani@anisinha.ca> wrote:

> This change adds a unit test to exercize the case when hotplug is disabled both for
> pci root bus and the pci bridges by passing the following two switches to qemu:
> 
>   -global PIIX4_PM.acpi-root-pci-hotplug=off
>   -global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off
> 
> bios-tables-test-allowed-diff.h documents the fact that a new DSDT acpi gold master
> binary blob we need to be added to test this. We will do the actual addition in the
> next patch in the series.
> 
> The following link contains the disassembly of the DSDT table after passing the above
> two switches to qemu: https://pastebin.ubuntu.com/p/WvpYYjpPN8/
> 
> Signed-off-by: Ani Sinha <ani@anisinha.ca>
> ---
>  tests/qtest/bios-tables-test-allowed-diff.h |  1 +
>  tests/qtest/bios-tables-test.c              | 19 ++++++++++++++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index dfb8523c8b..dea61d94f1 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1 +1,2 @@
>  /* List of comma-separated changed AML files to ignore */
> +"tests/data/acpi/pc/DSDT.hpbrroot",
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index 7632cfe1be..4c834474ad 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -768,6 +768,21 @@ static void test_acpi_piix4_bridge_hotplug(void)
>      free_test_data(&data);
>  }
>  
> +static void test_acpi_piix4_bridge_root_hotplug(void)
maybe better naming would be
s/bridge_root_hotplug/no_acpi_pci_hotplug/

> +{
> +    test_data data;
> +
> +    memset(&data, 0, sizeof(data));
> +    data.machine = MACHINE_PC;
> +    data.variant = ".hpbrroot";
> +    data.required_struct_types = base_required_struct_types;
> +    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
> +    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
> +                  "-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
> +                  "-device pci-bridge,chassis_nr=1", &data);
> +    free_test_data(&data);
> +}
> +
>  static void test_acpi_q35_tcg(void)
>  {
>      test_data data;
> @@ -1172,8 +1187,10 @@ int main(int argc, char *argv[])
>          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/piix4/hotplug", test_acpi_piix4_root_hotplug);
> +        qtest_add_func("acpi/piix4/roothotplug", test_acpi_piix4_root_hotplug);
>          qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug);
> +        qtest_add_func("acpi/piix4/disablehp",
how about:
"pci-hotplug/off"

> +                       test_acpi_piix4_bridge_root_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);
Igor Mammedov Sept. 16, 2020, 7:36 a.m. UTC | #2
On Wed, 16 Sep 2020 11:43:34 +0530
Ani Sinha <ani@anisinha.ca> wrote:

> This change adds a unit test to exercize the case when hotplug is disabled both for
> pci root bus and the pci bridges by passing the following two switches to qemu:
> 
>   -global PIIX4_PM.acpi-root-pci-hotplug=off
>   -global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off
> 
> bios-tables-test-allowed-diff.h documents the fact that a new DSDT acpi gold master
> binary blob we need to be added to test this. We will do the actual addition in the
> next patch in the series.



> The following link contains the disassembly of the DSDT table after passing the above
> two switches to qemu: https://pastebin.ubuntu.com/p/WvpYYjpPN8/

put this below --- line, please

> 
> Signed-off-by: Ani Sinha <ani@anisinha.ca>
> ---
>  tests/qtest/bios-tables-test-allowed-diff.h |  1 +
>  tests/qtest/bios-tables-test.c              | 19 ++++++++++++++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index dfb8523c8b..dea61d94f1 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1 +1,2 @@
>  /* List of comma-separated changed AML files to ignore */
> +"tests/data/acpi/pc/DSDT.hpbrroot",
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index 7632cfe1be..4c834474ad 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -768,6 +768,21 @@ static void test_acpi_piix4_bridge_hotplug(void)
>      free_test_data(&data);
>  }
>  
> +static void test_acpi_piix4_bridge_root_hotplug(void)
> +{
> +    test_data data;
> +
> +    memset(&data, 0, sizeof(data));
> +    data.machine = MACHINE_PC;
> +    data.variant = ".hpbrroot";
> +    data.required_struct_types = base_required_struct_types;
> +    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
> +    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
> +                  "-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
> +                  "-device pci-bridge,chassis_nr=1", &data);
> +    free_test_data(&data);
> +}
> +
>  static void test_acpi_q35_tcg(void)
>  {
>      test_data data;
> @@ -1172,8 +1187,10 @@ int main(int argc, char *argv[])
>          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/piix4/hotplug", test_acpi_piix4_root_hotplug);
> +        qtest_add_func("acpi/piix4/roothotplug", test_acpi_piix4_root_hotplug);
>          qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug);
> +        qtest_add_func("acpi/piix4/disablehp",
> +                       test_acpi_piix4_bridge_root_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);
Thomas Huth Sept. 16, 2020, 7:41 a.m. UTC | #3
Hi!

On 16/09/2020 08.13, Ani Sinha wrote:
> This change adds a unit test to exercize the case when hotplug is disabled both for


exercize ==> exercise
(also in the subject, please)

[...]> diff --git a/tests/qtest/bios-tables-test.c
b/tests/qtest/bios-tables-test.c
> index 7632cfe1be..4c834474ad 100644

> --- a/tests/qtest/bios-tables-test.c

> +++ b/tests/qtest/bios-tables-test.c

> @@ -768,6 +768,21 @@ static void test_acpi_piix4_bridge_hotplug(void)

>      free_test_data(&data);

>  }

>  

> +static void test_acpi_piix4_bridge_root_hotplug(void)

> +{

> +    test_data data;

> +

> +    memset(&data, 0, sizeof(data));

> +    data.machine = MACHINE_PC;

> +    data.variant = ".hpbrroot";


You could use:

    test data = {
        .machine = MACHINE_PC;
        .variant = ".hpbrroot";
    };

... then you don't need the memset() call anymore.

  Thomas
Ani Sinha Sept. 16, 2020, 10:57 a.m. UTC | #4
On Wed, Sep 16, 2020 at 1:11 PM Thomas Huth <thuth@redhat.com> wrote:
>
>  Hi!
>
> On 16/09/2020 08.13, Ani Sinha wrote:
> > This change adds a unit test to exercize the case when hotplug is disabled both for
>
> exercize ==> exercise
> (also in the subject, please)
>
> [...]> diff --git a/tests/qtest/bios-tables-test.c
> b/tests/qtest/bios-tables-test.c
> > index 7632cfe1be..4c834474ad 100644
> > --- a/tests/qtest/bios-tables-test.c
> > +++ b/tests/qtest/bios-tables-test.c
> > @@ -768,6 +768,21 @@ static void test_acpi_piix4_bridge_hotplug(void)
> >      free_test_data(&data);
> >  }
> >
> > +static void test_acpi_piix4_bridge_root_hotplug(void)
> > +{
> > +    test_data data;
> > +
> > +    memset(&data, 0, sizeof(data));
> > +    data.machine = MACHINE_PC;
> > +    data.variant = ".hpbrroot";
>
> You could use:
>
>     test data = {
>         .machine = MACHINE_PC;
>         .variant = ".hpbrroot";
>     };
>
> ... then you don't need the memset() call anymore.

It seems the tests which initialize data that way are the ones which
have more test attributes to set in data. Most tests does a memset. So
I will leave the memset as is for now.

>
>   Thomas
>
diff mbox series

Patch

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..dea61d94f1 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@ 
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT.hpbrroot",
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 7632cfe1be..4c834474ad 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -768,6 +768,21 @@  static void test_acpi_piix4_bridge_hotplug(void)
     free_test_data(&data);
 }
 
+static void test_acpi_piix4_bridge_root_hotplug(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".hpbrroot";
+    data.required_struct_types = base_required_struct_types;
+    data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types);
+    test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off "
+                  "-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off "
+                  "-device pci-bridge,chassis_nr=1", &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_q35_tcg(void)
 {
     test_data data;
@@ -1172,8 +1187,10 @@  int main(int argc, char *argv[])
         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/piix4/hotplug", test_acpi_piix4_root_hotplug);
+        qtest_add_func("acpi/piix4/roothotplug", test_acpi_piix4_root_hotplug);
         qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug);
+        qtest_add_func("acpi/piix4/disablehp",
+                       test_acpi_piix4_bridge_root_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);