Merge tag 'acpi-5.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[platform/kernel/linux-rpi.git] / lib / kunit / assert.c
index e0ec7d6..b972bda 100644 (file)
@@ -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);