[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-6.2 v3 3/6] tests/unit/test-smp-parse: Explicit MachineCl
Re: [PATCH-for-6.2 v3 3/6] tests/unit/test-smp-parse: Explicit MachineClass name
Tue, 16 Nov 2021 19:15:26 +0800
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0
On 2021/11/15 18:16, Philippe Mathieu-Daudé wrote:
On 11/12/21 03:28, wangyanan (Y) wrote:
On 2021/11/11 18:03, Philippe Mathieu-Daudé wrote:
If the MachineClass::name pointer is not explicitly set, it is NULL.
Per the C standard, passing a NULL pointer to printf "%s" format is
undefined. Some implementations display it as 'NULL', other as 'null'.
Since we are comparing the formatted output, we need a stable value.
The easiest is to explicit a machine name string.
Signed-off-by: Philippe Mathieu-Daudé <email@example.com>
tests/unit/test-smp-parse.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
@@ -481,6 +483,8 @@ static void machine_class_init(ObjectClass *oc,
mc->smp_props.prefer_sockets = true;
mc->smp_props.dies_supported = false;
+ mc->name = g_strdup(SMP_MACHINE_NAME);
I'm not very familiar with Qom code, so it may be a stupid question.
The mc->name will be automatically freed elsewhere when all the
testing is finished and exits, right? :)
I'll defer that to Eduardo / Markus, but meanwhile my understanding
is QOM classes are loaded once (the first time an instance requires
it) and never unloaded. Only instances can be unloaded, their resources
Yes, this is also how I found about "classes" when reading the code and
playing with tests in test-smp-parse.c
The machine life time is tied to the process one, when we are done
using a machine, it is simpler to exit() the process -- the kernel
releases the resources for us -- and create another process for a new
machine, rather than re-creating a different machine within the same
If there is a need for it (like releasing class resources), it is doable
but it seems we never worried about it.
Ok, I see. Thank you for the explanations. :)
[PATCH-for-6.2 v3 2/6] tests/unit/test-smp-parse: QOM'ify smp_machine_class_init(), Philippe Mathieu-Daudé, 2021/11/11
[PATCH-for-6.2 v3 3/6] tests/unit/test-smp-parse: Explicit MachineClass name, Philippe Mathieu-Daudé, 2021/11/11
[PATCH-for-6.2 v3 4/6] tests/unit/test-smp-parse: Simplify pointer to compound literal use, Philippe Mathieu-Daudé, 2021/11/11
[PATCH-for-6.2 v3 6/6] hw/core: Rename smp_parse() -> machine_parse_smp_config(), Philippe Mathieu-Daudé, 2021/11/11
[PATCH-for-6.2 v3 5/6] tests/unit/test-smp-parse: Constify some pointer/struct, Philippe Mathieu-Daudé, 2021/11/11
Re: [PATCH-for-6.2 v3 0/6] tests/unit: Fix test-smp-parse, Andrew Jones, 2021/11/11
- Re: [PATCH-for-6.2 v3 1/6] tests/unit/test-smp-parse: Restore MachineClass fields after modifying, (continued)