On 2021/11/11 18:03, Philippe Mathieu-Daudé wrote:
There is a single MachineClass object, registered with
type_register_static(&smp_machine_info). Since the same
object is used multiple times (an MachineState object
is instantiated in both test_generic and test_with_dies),
we should restore its internal state after modifying for
the test purpose.

Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com>
---
  tests/unit/test-smp-parse.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/unit/test-smp-parse.c b/tests/unit/test-smp-parse.c
index cbe0c990494..bd11fbe91de 100644
--- a/tests/unit/test-smp-parse.c
+++ b/tests/unit/test-smp-parse.c
@@ -512,7 +512,7 @@ static void test_generic(void)
          smp_parse_test(ms, data, true);
      }
- /* Reset the supported min CPUs and max CPUs */
+    /* Force invalid min CPUs and max CPUs */
      mc->min_cpus = 2;
      mc->max_cpus = 511;
@@ -523,6 +523,10 @@ static void test_generic(void)
          smp_parse_test(ms, data, false);
      }
+ /* Reset the supported min CPUs and max CPUs */
+    mc->min_cpus = MIN_CPUS;
+    mc->max_cpus = MAX_CPUS;
+
      object_unref(obj);
  }
Just want to have a note:
Besides the supported min/max CPUs, mc->smp_props is dirtied
too for test purpose in each sub-test function. But for now, it is
not functionally necessary to also restore them at the final of each
sub-test function. We need to do this when new specific parameters
are tested in separate tests. At that time, for example, we will need
to at least add:

/* Restore the SMP compat properties */
mc->smp_props.dies_supported = false;

at the bottom of test_with_dies()

Reviewed-by: Yanan Wang <wangyana...@huawei.com>
Tested-by: Yanan Wang <wangyana...@huawei.com>

Thanks,
Yanan


Reply via email to