Re: [PATCH v4 5/9] KVM: s390: selftest: memop: Move testlist into main

From: Janis Schoetterl-Glausch
Date: Mon Dec 19 2022 - 11:14:23 EST


On Tue, 2022-12-13 at 17:54 +0100, Janis Schoetterl-Glausch wrote:
> This allows checking if the necessary requirements for a test case are
> met via an arbitrary expression. In particular, it is easy to check if
> certain bits are set in the memop extension capability.
>
> Signed-off-by: Janis Schoetterl-Glausch <scgl@xxxxxxxxxxxxx>
> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>
> ---
> tools/testing/selftests/kvm/s390x/memop.c | 132 +++++++++++-----------
> 1 file changed, 66 insertions(+), 66 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/s390x/memop.c b/tools/testing/selftests/kvm/s390x/memop.c
> index 286185a59238..10f34c629cac 100644
> --- a/tools/testing/selftests/kvm/s390x/memop.c
> +++ b/tools/testing/selftests/kvm/s390x/memop.c
> @@ -690,87 +690,87 @@ static void test_errors(void)
> kvm_vm_free(t.kvm_vm);
> }
>
[...]
>
> int main(int argc, char *argv[])
> {
> int extension_cap, idx;
>
> + setbuf(stdout, NULL); /* Tell stdout not to buffer its content */
> TEST_REQUIRE(kvm_has_cap(KVM_CAP_S390_MEM_OP));
> + extension_cap = kvm_check_cap(KVM_CAP_S390_MEM_OP_EXTENSION);
>
[...]
>
> ksft_print_header();
> -
> ksft_set_plan(ARRAY_SIZE(testlist));
>
> - extension_cap = kvm_check_cap(KVM_CAP_S390_MEM_OP_EXTENSION);
> for (idx = 0; idx < ARRAY_SIZE(testlist); idx++) {
> - if (extension_cap >= testlist[idx].extension) {
> + if (testlist[idx].requirements_met) {
> testlist[idx].test();
> ksft_test_result_pass("%s\n", testlist[idx].name);
> } else {
> - ksft_test_result_skip("%s - extension level %d not supported\n",
> - testlist[idx].name,
> - testlist[idx].extension);
> + ksft_test_result_skip("%s - requirements not met (kernel has extension cap %#x\n)",

oops, should be )\n ofc ^

> + testlist[idx].name, extension_cap);
> }
> }
>