From: Ryota Sakamoto <sakamo.ryota@gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>,
Jeff Layton <jlayton@kernel.org>, NeilBrown <neil@brown.name>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <Dai.Ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>
Cc: linux-nfs@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
Ryota Sakamoto <sakamo.ryota@gmail.com>
Subject: [PATCH] SUNRPC: Replace KUnit tests for memcmp() with KUNIT_EXPECT_MEMEQ_MSG()
Date: Sat, 24 Jan 2026 14:17:19 +0900 [thread overview]
Message-ID: <20260124-fix-gcc_krb5-memcmp-v1-1-4648cbbdc78b@gmail.com> (raw)
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>
---
net/sunrpc/auth_gss/gss_krb5_test.c | 93 ++++++++++++++++++++-----------------
1 file changed, 51 insertions(+), 42 deletions(-)
diff --git a/net/sunrpc/auth_gss/gss_krb5_test.c b/net/sunrpc/auth_gss/gss_krb5_test.c
index a5bff02cd7ba48c75a6d270b6584c0f23cb71380..dde1ee934d0d448fe558a633e3d729c490ea26ae 100644
--- a/net/sunrpc/auth_gss/gss_krb5_test.c
+++ b/net/sunrpc/auth_gss/gss_krb5_test.c
@@ -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);
---
base-commit: 62085877ae6592be830c2267e35dc469cb706308
change-id: 20260124-fix-gcc_krb5-memcmp-2156897e6be1
Best regards,
--
Ryota Sakamoto <sakamo.ryota@gmail.com>
next reply other threads:[~2026-01-24 5:17 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-24 5:17 Ryota Sakamoto [this message]
2026-01-25 2:46 ` Chuck Lever
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=20260124-fix-gcc_krb5-memcmp-v1-1-4648cbbdc78b@gmail.com \
--to=sakamo.ryota@gmail.com \
--cc=Dai.Ngo@oracle.com \
--cc=anna@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jlayton@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
--cc=netdev@vger.kernel.org \
--cc=okorniev@redhat.com \
--cc=pabeni@redhat.com \
--cc=tom@talpey.com \
--cc=trondmy@kernel.org \
/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
all inboxes | Powered by JetHome®