dm: test: Show the amount of leaked memory on error
authorSimon Glass <sjg@chromium.org>
Sat, 12 Sep 2015 14:45:20 +0000 (08:45 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 5 Oct 2015 14:47:49 +0000 (15:47 +0100)
Adjust the memory leak tests to show the amount of memory leaked. This can
be a useful signal as to what is wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
test/dm/core.c

index 976a70604fbda21e3c95a6242a06c40937d24b42..9fbc70d3ed5668d81e9c4edb85f326837ff57887 100644 (file)
@@ -77,7 +77,7 @@ void dm_leak_check_start(struct unit_test_state *uts)
 int dm_leak_check_end(struct unit_test_state *uts)
 {
        struct mallinfo end;
-       int id;
+       int id, diff;
 
        /* Don't delete the root class, since we started with that */
        for (id = UCLASS_ROOT + 1; id < UCLASS_COUNT; id++) {
@@ -90,6 +90,11 @@ int dm_leak_check_end(struct unit_test_state *uts)
        }
 
        end = mallinfo();
+       diff = end.uordblks - uts->start.uordblks;
+       if (diff > 0)
+               printf("Leak: lost %#xd bytes\n", diff);
+       else if (diff < 0)
+               printf("Leak: gained %#xd bytes\n", -diff);
        ut_asserteq(uts->start.uordblks, end.uordblks);
 
        return 0;