Commit 7b4481cb authored by Richard Fitzgerald's avatar Richard Fitzgerald Committed by Shuah Khan
Browse files

kunit: Don't use a managed alloc in is_literal()



There is no need to use a test-managed alloc in is_literal().
The function frees the temporary buffer before returning.

This removes the only use of the test and gfp members of
struct string_stream outside of the string_stream implementation.

Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Reviewed-by: default avatarDavid Gow <davidgow@google.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 1f58cdb1
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -89,8 +89,7 @@ void kunit_ptr_not_err_assert_format(const struct kunit_assert *assert,
EXPORT_SYMBOL_GPL(kunit_ptr_not_err_assert_format);

/* Checks if `text` is a literal representing `value`, e.g. "5" and 5 */
static bool is_literal(struct kunit *test, const char *text, long long value,
		       gfp_t gfp)
static bool is_literal(const char *text, long long value)
{
	char *buffer;
	int len;
@@ -100,14 +99,15 @@ static bool is_literal(struct kunit *test, const char *text, long long value,
	if (strlen(text) != len)
		return false;

	buffer = kunit_kmalloc(test, len+1, gfp);
	buffer = kmalloc(len+1, GFP_KERNEL);
	if (!buffer)
		return false;

	snprintf(buffer, len+1, "%lld", value);
	ret = strncmp(buffer, text, len) == 0;

	kunit_kfree(test, buffer);
	kfree(buffer);

	return ret;
}

@@ -125,14 +125,12 @@ void kunit_binary_assert_format(const struct kunit_assert *assert,
			  binary_assert->text->left_text,
			  binary_assert->text->operation,
			  binary_assert->text->right_text);
	if (!is_literal(stream->test, binary_assert->text->left_text,
			binary_assert->left_value, stream->gfp))
	if (!is_literal(binary_assert->text->left_text, binary_assert->left_value))
		string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld (0x%llx)\n",
				  binary_assert->text->left_text,
				  binary_assert->left_value,
				  binary_assert->left_value);
	if (!is_literal(stream->test, binary_assert->text->right_text,
			binary_assert->right_value, stream->gfp))
	if (!is_literal(binary_assert->text->right_text, binary_assert->right_value))
		string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld (0x%llx)",
				  binary_assert->text->right_text,
				  binary_assert->right_value,