From: Fabiano Rosas <farosas@suse.de>
To: Het Gala <het.gala@nutanix.com>, qemu-devel@nongnu.org
Cc: thuth@redhat.com, lvivier@redhat.com, pbonzini@redhat.com,
peterx@redhat.com
Subject: Re: [PATCH] tests/qtest: Standardize qtest function caller strings.
Date: Fri, 05 Apr 2024 11:28:48 -0300 [thread overview]
Message-ID: <87a5m7vq73.fsf@suse.de> (raw)
In-Reply-To: <1f336795-5c5d-4320-8783-3cbe238f894c@nutanix.com>
Het Gala <het.gala@nutanix.com> writes:
> On 27/03/24 2:37 am, Fabiano Rosas wrote:
>> Het Gala<het.gala@nutanix.com> writes:
>>
>> Some comments, mostly just thinking out loud...
>>
>>> For <test-type> --> migrate
>>> /<test-type>/<migration-mode>/<method>/<transport>/<invocation>/
>>> <compression>/<encryption>/O:<others>/...
>>>
>>> For <test-type> --> validate
>>> /<test-type>/<validate-variable>/O:<transport>/O:<invocation>/
>>> <validate-test-result>/O:<test-reason>/O:<others>/...
>> Do we need an optional 'capability' element? I'm not sure how practical
>> is to leave that as 'others', because that puts it at the end of the
>> string. We'd want the element that's more important/with more variants
>> to be towards the start of the string so we can run all tests of the
>> same kind with the -r option.
> While also looking at different functions for figuring out the transport
> and invocation, my observation was that, there might be many capabilities
> added to the same test, while it might not be important also.
> Ex: /migrate/multifd/tcp/plain
> 1. multifd is defined as a migration mode.
> 2. It is also a capability, and comes in 2 parts [multifd, multifd-channels]
> though one is a capability and another is parameter
> Similarly in other examples of compression, there are many capabilities
> and parameters added, but it might be not important to mention that ?
>
> Secondly, there are multiple migration capabilities IIRC (> 15). And a test
> requiring multiple capabilities, the overall string would be too long, and
> not that important also to mention all capabilities.
>
> Just thinking out of mind - Can we have selective list of capabilities ?
> 1. multifd 2. compress (again, there might be confusion with multifd
> compression methods like zstd, zlib and just 'compress') 3. zero-page
> (This will have sub capabilities ?)
I was thinking of keeping that part more open-ended. So not specifying
capabilities one by one, but more like "if you're testing a capability,
it comes here".
About multifd, it's a bit special since it cannot be seen as just a
"feature" anymore. It's a core part of the migration code. I wouldn't
classify it as capability for the purposes of the tests.
>
>>> test-type :: migrate | validate
>> We could alternatively drop migration|migrate|validate. They are kind of
>> superfluous.
> I agree with the above comment. 'migrate' and 'validate' have a different
> set of variables required, some necessary, while other optional. IMO this
> will help is in streamlining the design further.
>>> migration-mode
>>> a. migrate --> :: precopy | postcopy | multifd
>>> b. validate --> :: (what to validate)
>>> methods :: preempt | recovery | reboot | suspend | simple
> I want some inputs here.
> 1. is there a better variable name rather than 'methods'
Does this fall into the "mode" terminology that Steven introduced?
> 2. 'simple' does not fit perfect here IMO.
Can we go without it?
>>> transport :: tcp | fd | unix | file
>>> invocation :: uri | channels | both
>>> CompressionType :: zlib | zstd | none
>> s/none/nocomp/ ? We're already familiar with that.
> Ack. Will change that.
>>> encryptionType :: tls | plain
>> s/plain/notls/ ?
> What if there is another encryption technique in future ?
>> Or maybe we simply omit the noop options. It would make the string way
>> shorter in most cases.
> This might be a better approach. Can have some keys/variables as optional
> while some necessary. For ex: for 'migrate' - transport and invocation
> might be necessary while it might not be necessary for 'validate' qtests
Yep
>>> validate-test-result :: success | failure
>>> others :: other comments/capability that needs to be
>>> addressed. Can be multiple
>>>
>>> (more than one applicable, separated by using '-' in between)
>>> O: optional
>>>
>>> Signed-off-by: Het Gala<het.gala@nutanix.com>
>>> Suggested-by: Fabiano Rosas<farosas@suse.de>
>>> ---
>>> tests/qtest/migration-test.c | 143 ++++++++++++++++++-----------------
>>> 1 file changed, 72 insertions(+), 71 deletions(-)
>>>
>>> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
>>> index bd9f4b9dbb..bf4d000b76 100644
>>> --- a/tests/qtest/migration-test.c
>>> +++ b/tests/qtest/migration-test.c
> Regards,
> Het Gala
I'm wondering whether we should leave the existing tests untouched and
require the new format only for new tests. Going through a git bisection
with a change in the middle that alters test names would be infuriating.
next prev parent reply other threads:[~2024-04-05 14:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-26 19:38 [PATCH] tests/qtest: Standardize qtest function caller strings Het Gala
2024-03-26 19:46 ` Het Gala
2024-03-26 21:07 ` Fabiano Rosas
2024-03-27 10:48 ` Het Gala
2024-04-02 18:46 ` Het Gala
2024-04-05 14:28 ` Fabiano Rosas [this message]
2024-04-10 12:33 ` Het Gala
2024-04-10 13:46 ` Fabiano Rosas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5m7vq73.fsf@suse.de \
--to=farosas@suse.de \
--cc=het.gala@nutanix.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).