tests/unit/test-smp-parse: Restore MachineClass fields after modifying

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.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Yanan Wang <wangyanan55@huawei.com>
Tested-by: Yanan Wang <wangyanan55@huawei.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211115145900.2531865-2-philmd@redhat.com>
This commit is contained in:
Philippe Mathieu-Daudé 2021-11-11 10:17:16 +01:00
parent 42f6c9179b
commit 2523a79565

View File

@ -512,7 +512,7 @@ static void test_generic(void)
smp_parse_test(ms, data, true); 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->min_cpus = 2;
mc->max_cpus = 511; mc->max_cpus = 511;
@ -523,6 +523,10 @@ static void test_generic(void)
smp_parse_test(ms, data, false); 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); object_unref(obj);
} }
@ -536,6 +540,7 @@ static void test_with_dies(void)
int i; int i;
smp_machine_class_init(mc); smp_machine_class_init(mc);
/* Force the SMP compat properties */
mc->smp_props.dies_supported = true; mc->smp_props.dies_supported = true;
for (i = 0; i < ARRAY_SIZE(data_generic_valid); i++) { for (i = 0; i < ARRAY_SIZE(data_generic_valid); i++) {
@ -575,6 +580,9 @@ static void test_with_dies(void)
smp_parse_test(ms, data, false); smp_parse_test(ms, data, false);
} }
/* Restore the SMP compat properties */
mc->smp_props.dies_supported = false;
object_unref(obj); object_unref(obj);
} }