On Thu, Nov 11, 2021 at 10:44:28AM +0800, Yanan Wang wrote: > Currently, the name of the tested machine in the expected error > messages is hardcoded as "(null)" which is not good, because the > actual generated name of the machine maybe "(null)" or "(NULL)" > which will cause an unexpected test failure in some CI platforms. > > So let's rename the tested machine with an unified string and > tweak the expected error messages accordingly. > > Fixes: 9e8e393bb7 ("tests/unit: Add an unit test for smp parsing") > Reported-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Signed-off-by: Yanan Wang <wangyana...@huawei.com> > --- > tests/unit/test-smp-parse.c | 38 ++++++++++++++++++++++++++----------- > 1 file changed, 27 insertions(+), 11 deletions(-) > > diff --git a/tests/unit/test-smp-parse.c b/tests/unit/test-smp-parse.c > index cbe0c99049..872512aa37 100644 > --- a/tests/unit/test-smp-parse.c > +++ b/tests/unit/test-smp-parse.c > @@ -23,6 +23,8 @@ > #define MIN_CPUS 1 /* set the min CPUs supported by the machine as 1 */ > #define MAX_CPUS 512 /* set the max CPUs supported by the machine as 512 */ > > +#define SMP_MACHINE_NAME "TEST-SMP" > + > /* > * Used to define the generic 3-level CPU topology hierarchy > * -sockets/cores/threads > @@ -315,13 +317,13 @@ static struct SMPTestData data_generic_invalid[] = { > * should tweak the supported min CPUs to 2 for testing */ > .config = SMP_CONFIG_GENERIC(T, 1, F, 0, F, 0, F, 0, F, 0), > .expect_error = "Invalid SMP CPUs 1. The min CPUs supported " > - "by machine '(null)' is 2", > + "by machine '" SMP_MACHINE_NAME "' is 2", > }, { > /* config: -smp 512 > * should tweak the supported max CPUs to 511 for testing */ > .config = SMP_CONFIG_GENERIC(T, 512, F, 0, F, 0, F, 0, F, 0), > .expect_error = "Invalid SMP CPUs 512. The max CPUs supported " > - "by machine '(null)' is 511", > + "by machine '" SMP_MACHINE_NAME "' is 511", > }, > }; > > @@ -480,26 +482,41 @@ static void unsupported_params_init(MachineClass *mc, > SMPTestData *data) > } > } > > -/* Reset the related machine properties before each sub-test */ > -static void smp_machine_class_init(MachineClass *mc) > +static Object *smp_test_machine_init(void) > { > + Object *obj = object_new(TYPE_MACHINE); > + MachineClass *mc = MACHINE_GET_CLASS(obj); > + > + g_free(mc->name); > + mc->name = g_strdup(SMP_MACHINE_NAME); > + > mc->min_cpus = MIN_CPUS; > mc->max_cpus = MAX_CPUS; > > mc->smp_props.prefer_sockets = true; > mc->smp_props.dies_supported = false; > + > + return obj; > +} > + > +static void smp_test_machine_deinit(Object *obj) > +{ > + MachineClass *mc = MACHINE_GET_CLASS(obj); > + > + g_free(mc->name); > + mc->name = NULL; > + > + object_unref(obj); > } > > static void test_generic(void) > { > - Object *obj = object_new(TYPE_MACHINE); > + Object *obj = smp_test_machine_init(); > MachineState *ms = MACHINE(obj); > MachineClass *mc = MACHINE_GET_CLASS(obj); > SMPTestData *data = &(SMPTestData){{ }}; > int i; > > - smp_machine_class_init(mc); > - > for (i = 0; i < ARRAY_SIZE(data_generic_valid); i++) { > *data = data_generic_valid[i]; > unsupported_params_init(mc, data); > @@ -523,19 +540,18 @@ static void test_generic(void) > smp_parse_test(ms, data, false); > } > > - object_unref(obj); > + smp_test_machine_deinit(obj); > } > > static void test_with_dies(void) > { > - Object *obj = object_new(TYPE_MACHINE); > + Object *obj = smp_test_machine_init(); > MachineState *ms = MACHINE(obj); > MachineClass *mc = MACHINE_GET_CLASS(obj); > SMPTestData *data = &(SMPTestData){{ }}; > unsigned int num_dies = 2; > int i; > > - smp_machine_class_init(mc); > mc->smp_props.dies_supported = true; > > for (i = 0; i < ARRAY_SIZE(data_generic_valid); i++) { > @@ -575,7 +591,7 @@ static void test_with_dies(void) > smp_parse_test(ms, data, false); > } > > - object_unref(obj); > + smp_test_machine_deinit(obj); > } > > int main(int argc, char *argv[]) > -- > 2.19.1 >
Reviewed-by: Andrew Jones <drjo...@redhat.com>