SUNRPC: Replace KUnit tests for memcmp() with KUNIT_EXPECT_MEMEQ_MSG()

Replace KUnit tests for memcmp() with KUNIT_EXPECT_MEMEQ_MSG() to improve
debugging that prints the hex dump of the buffers when the assertion fails,
whereas memcmp() only returns an integer difference.

Signed-off-by: Ryota Sakamoto <sakamo.ryota@gmail.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
Ryota Sakamoto 2026-01-24 14:17:19 +09:00 committed by Chuck Lever
parent a0ed7975de
commit ed7f4d323b

View File

@ -63,10 +63,11 @@ static void kdf_case(struct kunit *test)
KUNIT_ASSERT_EQ(test, err, 0);
/* Assert */
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
derivedkey.data, derivedkey.len), 0,
"key mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
derivedkey.data,
derivedkey.len,
"key mismatch");
}
static void checksum_case(struct kunit *test)
@ -111,10 +112,11 @@ static void checksum_case(struct kunit *test)
KUNIT_ASSERT_EQ(test, err, 0);
/* Assert */
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
checksum.data, checksum.len), 0,
"checksum mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
checksum.data,
checksum.len,
"checksum mismatch");
crypto_free_ahash(tfm);
}
@ -314,10 +316,11 @@ static void rfc3961_nfold_case(struct kunit *test)
param->expected_result->len * 8, result);
/* Assert */
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
result, param->expected_result->len), 0,
"result mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
result,
param->expected_result->len,
"result mismatch");
}
static struct kunit_case rfc3961_test_cases[] = {
@ -569,14 +572,16 @@ static void rfc3962_encrypt_case(struct kunit *test)
KUNIT_EXPECT_EQ_MSG(test,
param->expected_result->len, buf.len,
"ciphertext length mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
text, param->expected_result->len), 0,
"ciphertext mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->next_iv->data, iv,
param->next_iv->len), 0,
"IV mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
text,
param->expected_result->len,
"ciphertext mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->next_iv->data,
iv,
param->next_iv->len,
"IV mismatch");
crypto_free_sync_skcipher(cts_tfm);
crypto_free_sync_skcipher(cbc_tfm);
@ -1194,15 +1199,17 @@ static void rfc6803_encrypt_case(struct kunit *test)
KUNIT_EXPECT_EQ_MSG(test, param->expected_result->len,
buf.len + checksum.len,
"ciphertext length mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
buf.head[0].iov_base, buf.len), 0,
"encrypted result mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data +
(param->expected_result->len - checksum.len),
checksum.data, checksum.len), 0,
"HMAC mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
buf.head[0].iov_base,
buf.len,
"encrypted result mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data +
(param->expected_result->len - checksum.len),
checksum.data,
checksum.len,
"HMAC mismatch");
crypto_free_ahash(ahash_tfm);
crypto_free_sync_skcipher(cts_tfm);
@ -1687,15 +1694,16 @@ static void rfc8009_encrypt_case(struct kunit *test)
KUNIT_EXPECT_EQ_MSG(test,
param->expected_result->len, buf.len,
"ciphertext length mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->expected_result->data,
buf.head[0].iov_base,
param->expected_result->len), 0,
"ciphertext mismatch");
KUNIT_EXPECT_EQ_MSG(test, memcmp(param->expected_hmac->data,
checksum.data,
checksum.len), 0,
"HMAC mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_result->data,
buf.head[0].iov_base,
param->expected_result->len,
"ciphertext mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->expected_hmac->data,
checksum.data,
checksum.len,
"HMAC mismatch");
crypto_free_ahash(ahash_tfm);
crypto_free_sync_skcipher(cts_tfm);
@ -1826,10 +1834,11 @@ static void encrypt_selftest_case(struct kunit *test)
KUNIT_EXPECT_EQ_MSG(test,
param->plaintext->len, buf.len,
"length mismatch");
KUNIT_EXPECT_EQ_MSG(test,
memcmp(param->plaintext->data,
buf.head[0].iov_base, buf.len), 0,
"plaintext mismatch");
KUNIT_EXPECT_MEMEQ_MSG(test,
param->plaintext->data,
buf.head[0].iov_base,
buf.len,
"plaintext mismatch");
crypto_free_sync_skcipher(cts_tfm);
crypto_free_sync_skcipher(cbc_tfm);