Thanks for reply.
On 2024/4/26 00:25, Sean Christopherson wrote:
On Wed, Apr 24, 2024, Oliver Upton wrote:
Hey,
On Wed, Apr 24, 2024 at 07:51:44AM -0700, Sean Christopherson wrote:
On Wed, Apr 24, 2024, Andrew Jones wrote:
On Tue, Apr 23, 2024 at 12:15:47PM -0700, Sean Christopherson wrote: ...
I almost wonder if we should just pick a prefix that's less obviously connected to KVM and/or selftests, but unique and short.
How about kvmsft_ ? It's based on the ksft_ prefix of kselftest.h. Maybe it's too close to ksft though and would be confusing when using both in the same test?
I would prefer something short, and for whatever reason I have a mental block with ksft. I always read it as "k soft", which is completely nonsensical :-)
I despise brevity in tests, so my strong preference is to use some form of 'namespaced' helper. Perhaps others have better memory than I do, but I'm quick to forget the selftests library and find the more verbose / obvious function names helpful for jogging my memory.
Hmm, I generally agree, but in this case I think there's value in having the names *not* stand out, because they really are uninteresting and would ideally blend in. I can't envision a scenario where we don't want to assert on an OOM, i.e. there should never be a need to use a raw malloc(), and so I don't see much value in making it obvious that the call sites are doing something special.
I'm not a huge fan of capital letters, but we could also do something like MALLOC()/CALLOC().
Hmm, I'm not usually a fan either, but that could actually work quite well in this case. It would be quite intuitive, easy to visually parse whereas tmalloc() vs malloc() kinda looks like a typo, and would more clearly communicate that they're macros.
Ooo, don't leave me out on the bikeshedding! How about TEST_MALLOC() / TEST_CALLOC(). It is vaguely similar to TEST_ASSERT(), which I'd hope would give the impression that an assertion is lurking below.
Yeah, but it could also give the false impression that the macro does something fancier, e.g. this makes me want to peek at TEST_MALLOC() to see what it's doing
cpuid = TEST_MALLOC(kvm_cpuid2_size(nr_entries));
whereas this isn't quite enough to pique my curiosity.
cpuid = MALLOC(kvm_cpuid2_size(nr_entries));
So I have a slight preference for just MALLOC()/CALLOC(), but I'm also ok with a TEST_ prefix, my brain can adapt. One of those two flavors has my vote.
According to the previous discussion, so which method do we need to use now?
If you have a consensus, if necessary, I can continue to do this work.
We had many different way in selftests to check the null pointer or fail state, such as 'ksft_exit_fail_*' 'ASSERT_*' 'CHECK*' or just use if statement.
If we add a new macro, whether these old usage should be changed as well.