On 16/01/2020 18.06, Igor Mammedov wrote:
> On Thu, 16 Jan 2020 17:35:32 +0100
> Thomas Huth <th...@redhat.com> wrote:
> 
>> On 15/01/2020 16.07, Igor Mammedov wrote:
>>> Use GString to pass argument to make_cli() so that it would be easy
>>> to dynamically change test case arguments from main(). The follow up
>>> patch will use it to change RAM size options depending on target.
>>>
>>> While at it cleanup 'cli' freeing, using g_autofree annotation.  
>>
>> Hmm, I'd use g_autofree for new code or do it in a separate cleanup
>> patch, but doing this here distracts quite a bit from the real changes
>> that you are doing...
> I'll split it into separate patch
> 
>>
>>> Signed-off-by: Igor Mammedov <imamm...@redhat.com>
>>> ---
>>> PS:
>>>   made as a separate patch so it won't clutter followup testcase changes.
>>>
>>> CC: th...@redhat.com
>>> CC: lviv...@redhat.com
>>> ---
>>>  tests/qtest/numa-test.c | 38 ++++++++++++++------------------------
>>>  1 file changed, 14 insertions(+), 24 deletions(-)
>>>
>>> diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
>>> index 17dd807..a696dfd 100644
>>> --- a/tests/qtest/numa-test.c
>>> +++ b/tests/qtest/numa-test.c
>>> @@ -14,16 +14,16 @@
>>>  #include "qapi/qmp/qdict.h"
>>>  #include "qapi/qmp/qlist.h"
>>>  
>>> -static char *make_cli(const char *generic_cli, const char *test_cli)
>>> +static char *make_cli(const GString *generic_cli, const char *test_cli)
>>>  {
>>> -    return g_strdup_printf("%s %s", generic_cli ? generic_cli : "", 
>>> test_cli);
>>> +    return g_strdup_printf("%s %s", generic_cli->str, test_cli);
>>>  }  
>> [...]
>>> @@ -539,11 +529,11 @@ static void pc_hmat_erange_cfg(const void *data)
>>>  
>>>  int main(int argc, char **argv)
>>>  {
>>> -    const char *args = NULL;
>>> +    g_autoptr(GString) args = g_string_new("");  
>>
>> I think g_string_new(NULL) would be better?
>>
>>>      const char *arch = qtest_get_arch();
>>>  
>>>      if (strcmp(arch, "aarch64") == 0) {
>>> -        args = "-machine virt";
>>> +        g_string_append(args, " -machine virt")>      }  
>>
>> Is this really required? Looking at your next patch, you could also
>> simply do
>>
>>           args = " -object memory-backend-ram,id=ram,size=xxxM"
> xxx is variable so options are
>  1 build this part of CLI dynamically
>  2 mostly duplicate testcase function and include per target size there
>  3 make up a test data structure and pass that to test cases
> 
> Given simplicity of current testcases, I'd prefer continue with
> passing CLI as testcase data (option #1).

Sorry, I think I missed something here... currently I see in the next patch:

+    if (!strcmp(arch, "ppc64")) {
+        g_string_append(args, " -object
memory-backend-ram,id=ram,size=512M");
+    } else {
+        g_string_append(args, " -object
memory-backend-ram,id=ram,size=128M");
+    }

... so these are static strings which could also be handled fine without
GString? Or do you plan to update this in later patches?

 Thomas


Reply via email to