* Expected message may have a message level other than KERN_INFO.
  * Print the expected message only if the current loglevel will allow
  * the actual message to print.
+ *
+ * Do not use EXPECT_BEGIN() or EXPECT_END() for messages generated by
+ * pr_debug().
  */
 #define EXPECT_BEGIN(level, fmt, ...) \
        printk(level pr_fmt("EXPECT \\ : ") fmt, ##__VA_ARGS__)
 
        /* Check for missing cells property */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1");
+
        rc = of_parse_phandle_with_args(np, "phandle-list",
                                        "#phandle-cells-missing", 0, &args);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1");
+
        rc = of_count_phandle_with_args(np, "phandle-list",
                                        "#phandle-cells-missing");
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 
        /* Check for bad phandle in list */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: could not find phandle");
+
        rc = of_parse_phandle_with_args(np, "phandle-list-bad-phandle",
                                        "#phandle-cells", 0, &args);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: could not find phandle");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: could not find phandle");
+
        rc = of_count_phandle_with_args(np, "phandle-list-bad-phandle",
                                        "#phandle-cells");
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: could not find phandle");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 
        /* Check for incorrectly formed argument list */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1");
+
        rc = of_parse_phandle_with_args(np, "phandle-list-bad-args",
                                        "#phandle-cells", 1, &args);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1");
+
        rc = of_count_phandle_with_args(np, "phandle-list-bad-args",
                                        "#phandle-cells");
+
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 }
 
 
        /* Check for missing cells,map,mask property */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1");
+
        rc = of_parse_phandle_with_args_map(np, "phandle-list",
                                            "phandle-missing", 0, &args);
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 
        /* Check for bad phandle in list */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-b: could not find phandle");
+
        rc = of_parse_phandle_with_args_map(np, "phandle-list-bad-phandle",
                                            "phandle", 0, &args);
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-b: could not find phandle");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 
        /* Check for incorrectly formed argument list */
        memset(&args, 0, sizeof(args));
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1");
+
        rc = of_parse_phandle_with_args_map(np, "phandle-list-bad-args",
                                            "phandle", 1, &args);
+       EXPECT_END(KERN_INFO,
+                  "OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1");
+
        unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc);
 }
 
                np = of_find_node_by_path("/testcase-data/testcase-device2");
                pdev = of_find_device_by_node(np);
                unittest(pdev, "device 2 creation failed\n");
+
+               EXPECT_BEGIN(KERN_INFO,
+                            "platform testcase-data:testcase-device2: IRQ index 0 not found");
+
                irq = platform_get_irq(pdev, 0);
+
+               EXPECT_END(KERN_INFO,
+                          "platform testcase-data:testcase-device2: IRQ index 0 not found");
+
                unittest(irq < 0 && irq != -EPROBE_DEFER,
                         "device parsing error failed - %d\n", irq);
        }
                return 0;
        }
 
+       EXPECT_BEGIN(KERN_INFO,
+                    "Duplicate name in testcase-data, renamed to \"duplicate-name#1\"");
+
        /* attach the sub-tree to live tree */
        np = unittest_data_node->child;
        while (np) {
                np = next;
        }
 
+       EXPECT_END(KERN_INFO,
+                  "Duplicate name in testcase-data, renamed to \"duplicate-name#1\"");
+
        of_overlay_mutex_unlock();
 
        return 0;
 /* test activation of device */
 static void __init of_unittest_overlay_0(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status");
+
        /* device should enable */
-       if (of_unittest_apply_overlay_check(0, 0, 0, 1, PDEV_OVERLAY))
+       ret = of_unittest_apply_overlay_check(0, 0, 0, 1, PDEV_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 0);
 /* test deactivation of device */
 static void __init of_unittest_overlay_1(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status");
+
        /* device should disable */
-       if (of_unittest_apply_overlay_check(1, 1, 1, 0, PDEV_OVERLAY))
+       ret = of_unittest_apply_overlay_check(1, 1, 1, 0, PDEV_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 1);
+
 }
 
 /* test activation of device */
 static void __init of_unittest_overlay_2(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status");
+
        /* device should enable */
-       if (of_unittest_apply_overlay_check(2, 2, 0, 1, PDEV_OVERLAY))
-               return;
+       ret = of_unittest_apply_overlay_check(2, 2, 0, 1, PDEV_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status");
 
+       if (ret)
+               return;
        unittest(1, "overlay test %d passed\n", 2);
 }
 
 /* test deactivation of device */
 static void __init of_unittest_overlay_3(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status");
+
        /* device should disable */
-       if (of_unittest_apply_overlay_check(3, 3, 1, 0, PDEV_OVERLAY))
+       ret = of_unittest_apply_overlay_check(3, 3, 1, 0, PDEV_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 3);
 /* test overlay apply/revert sequence */
 static void __init of_unittest_overlay_5(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status");
+
        /* device should disable */
-       if (of_unittest_apply_revert_overlay_check(5, 5, 0, 1, PDEV_OVERLAY))
+       ret = of_unittest_apply_revert_overlay_check(5, 5, 0, 1, PDEV_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 5);
        int before = 0, after = 1;
        const char *overlay_name;
 
+       int ret;
+
        /* unittest device must be in before state */
        for (i = 0; i < 2; i++) {
                if (of_unittest_device_exists(unittest_nr + i, PDEV_OVERLAY)
        }
 
        /* apply the overlays */
-       for (i = 0; i < 2; i++) {
 
-               overlay_name = overlay_name_from_nr(overlay_nr + i);
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status");
+
+       overlay_name = overlay_name_from_nr(overlay_nr + 0);
 
-               if (!overlay_data_apply(overlay_name, &ovcs_id)) {
-                       unittest(0, "could not apply overlay \"%s\"\n",
-                                       overlay_name);
+       ret = overlay_data_apply(overlay_name, &ovcs_id);
+
+       if (!ret) {
+               unittest(0, "could not apply overlay \"%s\"\n", overlay_name);
+                       return;
+       }
+       ov_id[0] = ovcs_id;
+       of_unittest_track_overlay(ov_id[0]);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status");
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status");
+
+       overlay_name = overlay_name_from_nr(overlay_nr + 1);
+
+       ret = overlay_data_apply(overlay_name, &ovcs_id);
+
+       if (!ret) {
+               unittest(0, "could not apply overlay \"%s\"\n", overlay_name);
                        return;
-               }
-               ov_id[i] = ovcs_id;
-               of_unittest_track_overlay(ov_id[i]);
        }
+       ov_id[1] = ovcs_id;
+       of_unittest_track_overlay(ov_id[1]);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status");
+
 
        for (i = 0; i < 2; i++) {
                /* unittest device must be in after state */
        }
 
        unittest(1, "overlay test %d passed\n", 6);
+
 }
 
 /* test overlay application in sequence */
        int i, ov_id[2], ovcs_id;
        int overlay_nr = 8, unittest_nr = 8;
        const char *overlay_name;
+       int ret;
 
        /* we don't care about device state in this test */
 
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status");
+
+       overlay_name = overlay_name_from_nr(overlay_nr + 0);
+
+       ret = overlay_data_apply(overlay_name, &ovcs_id);
+       if (!ret)
+               unittest(0, "could not apply overlay \"%s\"\n", overlay_name);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status");
+
+       if (!ret)
+               return;
+
+       ov_id[0] = ovcs_id;
+       of_unittest_track_overlay(ov_id[0]);
+
+       overlay_name = overlay_name_from_nr(overlay_nr + 1);
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo");
+
        /* apply the overlays */
-       for (i = 0; i < 2; i++) {
+       ret = overlay_data_apply(overlay_name, &ovcs_id);
 
-               overlay_name = overlay_name_from_nr(overlay_nr + i);
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo");
 
-               if (!overlay_data_apply(overlay_name, &ovcs_id)) {
-                       unittest(0, "could not apply overlay \"%s\"\n",
-                                       overlay_name);
-                       return;
-               }
-               ov_id[i] = ovcs_id;
-               of_unittest_track_overlay(ov_id[i]);
+       if (!ret) {
+               unittest(0, "could not apply overlay \"%s\"\n", overlay_name);
+               return;
        }
 
+       ov_id[1] = ovcs_id;
+       of_unittest_track_overlay(ov_id[1]);
+
        /* now try to remove first overlay (it should fail) */
        ovcs_id = ov_id[0];
-       if (!of_overlay_remove(&ovcs_id)) {
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8");
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: overlay #6 is not topmost");
+
+       ret = of_overlay_remove(&ovcs_id);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: overlay #6 is not topmost");
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8");
+
+       if (!ret) {
                unittest(0, "%s was destroyed @\"%s\"\n",
                                overlay_name_from_nr(overlay_nr + 0),
                                unittest_path(unittest_nr,
 
        /* device should disable */
        ret = of_unittest_apply_overlay_check(10, 10, 0, 1, PDEV_OVERLAY);
+
        if (unittest(ret == 0,
                        "overlay test %d failed; overlay application\n", 10))
                return;
        /* device should disable */
        ret = of_unittest_apply_revert_overlay_check(11, 11, 0, 1,
                        PDEV_OVERLAY);
+
        unittest(ret == 0, "overlay test %d failed; overlay apply\n", 11);
 }
 
                return ret;
 
        ret = platform_driver_register(&unittest_i2c_bus_driver);
+
        if (unittest(ret == 0,
                        "could not register unittest i2c bus driver\n"))
                return ret;
 
 #if IS_BUILTIN(CONFIG_I2C_MUX)
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "i2c i2c-1: Added multiplexed i2c bus 2");
+
        ret = i2c_add_driver(&unittest_i2c_mux_driver);
+
+       EXPECT_END(KERN_INFO,
+                  "i2c i2c-1: Added multiplexed i2c bus 2");
+
        if (unittest(ret == 0,
                        "could not register unittest i2c mux driver\n"))
                return ret;
 
 static void __init of_unittest_overlay_i2c_12(void)
 {
+       int ret;
+
        /* device should enable */
-       if (of_unittest_apply_overlay_check(12, 12, 0, 1, I2C_OVERLAY))
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status");
+
+       ret = of_unittest_apply_overlay_check(12, 12, 0, 1, I2C_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 12);
 /* test deactivation of device */
 static void __init of_unittest_overlay_i2c_13(void)
 {
+       int ret;
+
+       EXPECT_BEGIN(KERN_INFO,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status");
+
        /* device should disable */
-       if (of_unittest_apply_overlay_check(13, 13, 1, 0, I2C_OVERLAY))
+       ret = of_unittest_apply_overlay_check(13, 13, 1, 0, I2C_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 13);
 
 static void __init of_unittest_overlay_i2c_15(void)
 {
+       int ret;
+
        /* device should enable */
-       if (of_unittest_apply_overlay_check(15, 15, 0, 1, I2C_OVERLAY))
+       EXPECT_BEGIN(KERN_INFO,
+                    "i2c i2c-1: Added multiplexed i2c bus 3");
+
+       ret = of_unittest_apply_overlay_check(15, 15, 0, 1, I2C_OVERLAY);
+
+       EXPECT_END(KERN_INFO,
+                  "i2c i2c-1: Added multiplexed i2c bus 3");
+
+       if (ret)
                return;
 
        unittest(1, "overlay test %d passed\n", 15);
        struct device_node *overlay_base_symbols;
        struct device_node **pprev;
        struct property *prop;
+       int ret;
 
        if (!overlay_base_root) {
                unittest(0, "overlay_base_root not initialized\n");
 
        /* now do the normal overlay usage test */
 
-       unittest(overlay_data_apply("overlay", NULL),
-                "Adding overlay 'overlay' failed\n");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right");
+
+       ret = overlay_data_apply("overlay", NULL);
+
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status");
+
+       unittest(ret, "Adding overlay 'overlay' failed\n");
+
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name");
 
        unittest(overlay_data_apply("overlay_bad_add_dup_node", NULL),
                 "Adding overlay 'overlay_bad_add_dup_node' failed\n");
 
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller");
+
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
+       EXPECT_BEGIN(KERN_ERR,
+                    "OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail");
+
        unittest(overlay_data_apply("overlay_bad_add_dup_prop", NULL),
                 "Adding overlay 'overlay_bad_add_dup_prop' failed\n");
 
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
+       EXPECT_END(KERN_ERR,
+                  "OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
+
        unittest(overlay_data_apply("overlay_bad_phandle", NULL),
                 "Adding overlay 'overlay_bad_phandle' failed\n");
 
        struct device_node *np;
        int res;
 
+       pr_info("start of unittest - you will see error messages\n");
+
        /* adding data for unittest */
 
        if (IS_ENABLED(CONFIG_UML))
        }
        of_node_put(np);
 
-       pr_info("start of unittest - you will see error messages\n");
        of_unittest_check_tree_linkage();
        of_unittest_check_phandles();
        of_unittest_find_node_by_name();