diff options
Diffstat (limited to 'lib/kunit/assert.c')
| -rw-r--r-- | lib/kunit/assert.c | 61 | 
1 files changed, 44 insertions, 17 deletions
diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c index e0ec7d6fed6f..b972bda61c0c 100644 --- a/lib/kunit/assert.c +++ b/lib/kunit/assert.c @@ -25,7 +25,7 @@ void kunit_base_assert_format(const struct kunit_assert *assert,  	}  	string_stream_add(stream, "%s FAILED at %s:%d\n", -			 expect_or_assert, assert->file, assert->line); +			  expect_or_assert, assert->file, assert->line);  }  EXPORT_SYMBOL_GPL(kunit_base_assert_format); @@ -48,8 +48,9 @@ EXPORT_SYMBOL_GPL(kunit_fail_assert_format);  void kunit_unary_assert_format(const struct kunit_assert *assert,  			       struct string_stream *stream)  { -	struct kunit_unary_assert *unary_assert = container_of( -			assert, struct kunit_unary_assert, assert); +	struct kunit_unary_assert *unary_assert; + +	unary_assert = container_of(assert, struct kunit_unary_assert, assert);  	kunit_base_assert_format(assert, stream);  	if (unary_assert->expected_true) @@ -67,8 +68,10 @@ EXPORT_SYMBOL_GPL(kunit_unary_assert_format);  void kunit_ptr_not_err_assert_format(const struct kunit_assert *assert,  				     struct string_stream *stream)  { -	struct kunit_ptr_not_err_assert *ptr_assert = container_of( -			assert, struct kunit_ptr_not_err_assert, assert); +	struct kunit_ptr_not_err_assert *ptr_assert; + +	ptr_assert = container_of(assert, struct kunit_ptr_not_err_assert, +				  assert);  	kunit_base_assert_format(assert, stream);  	if (!ptr_assert->value) { @@ -111,8 +114,10 @@ static bool is_literal(struct kunit *test, const char *text, long long value,  void kunit_binary_assert_format(const struct kunit_assert *assert,  				struct string_stream *stream)  { -	struct kunit_binary_assert *binary_assert = container_of( -			assert, struct kunit_binary_assert, assert); +	struct kunit_binary_assert *binary_assert; + +	binary_assert = container_of(assert, struct kunit_binary_assert, +				     assert);  	kunit_base_assert_format(assert, stream);  	string_stream_add(stream, @@ -137,8 +142,10 @@ EXPORT_SYMBOL_GPL(kunit_binary_assert_format);  void kunit_binary_ptr_assert_format(const struct kunit_assert *assert,  				    struct string_stream *stream)  { -	struct kunit_binary_ptr_assert *binary_assert = container_of( -			assert, struct kunit_binary_ptr_assert, assert); +	struct kunit_binary_ptr_assert *binary_assert; + +	binary_assert = container_of(assert, struct kunit_binary_ptr_assert, +				     assert);  	kunit_base_assert_format(assert, stream);  	string_stream_add(stream, @@ -156,11 +163,29 @@ void kunit_binary_ptr_assert_format(const struct kunit_assert *assert,  }  EXPORT_SYMBOL_GPL(kunit_binary_ptr_assert_format); +/* Checks if KUNIT_EXPECT_STREQ() args were string literals. + * Note: `text` will have ""s where as `value` will not. + */ +static bool is_str_literal(const char *text, const char *value) +{ +	int len; + +	len = strlen(text); +	if (len < 2) +		return false; +	if (text[0] != '\"' || text[len - 1] != '\"') +		return false; + +	return strncmp(text + 1, value, len - 2) == 0; +} +  void kunit_binary_str_assert_format(const struct kunit_assert *assert,  				    struct string_stream *stream)  { -	struct kunit_binary_str_assert *binary_assert = container_of( -			assert, struct kunit_binary_str_assert, assert); +	struct kunit_binary_str_assert *binary_assert; + +	binary_assert = container_of(assert, struct kunit_binary_str_assert, +				     assert);  	kunit_base_assert_format(assert, stream);  	string_stream_add(stream, @@ -168,12 +193,14 @@ void kunit_binary_str_assert_format(const struct kunit_assert *assert,  			  binary_assert->left_text,  			  binary_assert->operation,  			  binary_assert->right_text); -	string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %s\n", -			  binary_assert->left_text, -			  binary_assert->left_value); -	string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %s", -			  binary_assert->right_text, -			  binary_assert->right_value); +	if (!is_str_literal(binary_assert->left_text, binary_assert->left_value)) +		string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == \"%s\"\n", +				  binary_assert->left_text, +				  binary_assert->left_value); +	if (!is_str_literal(binary_assert->right_text, binary_assert->right_value)) +		string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == \"%s\"", +				  binary_assert->right_text, +				  binary_assert->right_value);  	kunit_assert_print_msg(assert, stream);  }  EXPORT_SYMBOL_GPL(kunit_binary_str_assert_format);  |