From fe90151c3cc6dbc0836723995f65d371ef4ad514 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Mon, 27 Feb 2023 10:58:34 -0500 Subject: SUNRPC: Let Kunit tests run with some enctypes compiled out Allow the new GSS Kerberos encryption type test suites to run outside of the kunit infrastructure. Replace the assertion that fires when lookup_enctype() so that the case is skipped instead of failing outright. Reported-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Signed-off-by: Chuck Lever --- net/sunrpc/auth_gss/gss_krb5_test.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'net') diff --git a/net/sunrpc/auth_gss/gss_krb5_test.c b/net/sunrpc/auth_gss/gss_krb5_test.c index c287ce15c419..0a7c5280e4e3 100644 --- a/net/sunrpc/auth_gss/gss_krb5_test.c +++ b/net/sunrpc/auth_gss/gss_krb5_test.c @@ -49,7 +49,8 @@ static void kdf_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); derivedkey.data = kunit_kzalloc(test, param->expected_result->len, GFP_KERNEL); @@ -83,7 +84,8 @@ static void checksum_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); Kc.len = gk5e->Kc_length; Kc.data = kunit_kzalloc(test, Kc.len, GFP_KERNEL); @@ -725,7 +727,8 @@ static void rfc3962_encrypt_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); cbc_tfm = crypto_alloc_sync_skcipher(gk5e->aux_cipher, 0, 0); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cbc_tfm); @@ -1319,7 +1322,8 @@ static void rfc6803_encrypt_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); usage.data[3] = param->constant; @@ -1810,7 +1814,8 @@ static void rfc8009_encrypt_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); *(__be32 *)usage.data = cpu_to_be32(2); @@ -1975,7 +1980,8 @@ static void encrypt_selftest_case(struct kunit *test) /* Arrange */ gk5e = gss_krb5_lookup_enctype(param->enctype); - KUNIT_ASSERT_NOT_NULL(test, gk5e); + if (!gk5e) + kunit_skip(test, "Encryption type is not available"); cbc_tfm = crypto_alloc_sync_skcipher(gk5e->aux_cipher, 0, 0); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cbc_tfm); -- cgit v1.2.3 From fb5b855d9f34927579baa0a20b4d0d8ea3740abd Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Mon, 27 Feb 2023 11:52:59 -0500 Subject: SUNRPC: Properly terminate test case arrays Unable to handle kernel paging request at virtual address 73657420 when execute [73657420] *pgd=00000000 Internal error: Oops: 80000005 [#1] ARM CPU: 0 PID: 1 Comm: swapper Tainted: G N 6.2.0-rc7-00133-g373f26a81164-dirty #9 Hardware name: Generic DT based system PC is at 0x73657420 LR is at kunit_run_tests+0x3e0/0x5f4 On x86 with GCC 12, the missing array terminators did not seem to matter. Other platforms appear to be more picky. Reported-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Signed-off-by: Chuck Lever --- net/sunrpc/auth_gss/gss_krb5_test.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'net') diff --git a/net/sunrpc/auth_gss/gss_krb5_test.c b/net/sunrpc/auth_gss/gss_krb5_test.c index 0a7c5280e4e3..ce0541e32fc9 100644 --- a/net/sunrpc/auth_gss/gss_krb5_test.c +++ b/net/sunrpc/auth_gss/gss_krb5_test.c @@ -519,6 +519,7 @@ static struct kunit_case rfc3961_test_cases[] = { .run_case = kdf_case, .generate_params = rfc3961_kdf_gen_params, }, + {} }; static struct kunit_suite rfc3961_suite = { @@ -780,6 +781,7 @@ static struct kunit_case rfc3962_test_cases[] = { .run_case = rfc3962_encrypt_case, .generate_params = rfc3962_encrypt_gen_params, }, + {} }; static struct kunit_suite rfc3962_suite = { @@ -1415,6 +1417,7 @@ static struct kunit_case rfc6803_test_cases[] = { .run_case = rfc6803_encrypt_case, .generate_params = rfc6803_encrypt_gen_params, }, + {} }; static struct kunit_suite rfc6803_suite = { @@ -1907,6 +1910,7 @@ static struct kunit_case rfc8009_test_cases[] = { .run_case = rfc8009_encrypt_case, .generate_params = rfc8009_encrypt_gen_params, }, + {} }; static struct kunit_suite rfc8009_suite = { @@ -2029,6 +2033,7 @@ static struct kunit_case encryption_test_cases[] = { .run_case = encrypt_selftest_case, .generate_params = encrypt_selftest_gen_params, }, + {} }; static struct kunit_suite encryption_test_suite = { -- cgit v1.2.3