test: Add a macro to check that a value is not an error pointer
authorSimon Glass <sjg@chromium.org>
Mon, 6 Jul 2015 18:54:37 +0000 (12:54 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 21 Jul 2015 23:39:33 +0000 (17:39 -0600)
Some functions can return ERR_PTR(errval). Add a unit test macro to check
that no error is returned in a pointer.

Signed-off-by: Simon Glass <sjg@chromium.org>
include/test/ut.h

index 5e5aa6ce41c3ac7cdafbfc566be8e987805f4575..da7c1a9d265b4820582315ebbe04eddfb1172c6b 100644 (file)
@@ -9,6 +9,8 @@
 #ifndef __TEST_UT_H
 #define __TEST_UT_H
 
+#include <linux/err.h>
+
 struct unit_test_state;
 
 /**
@@ -101,6 +103,19 @@ void ut_failf(struct unit_test_state *uts, const char *fname, int line,
        }                                                               \
 }
 
+/* Assert that a pointer is not an error pointer */
+#define ut_assertok_ptr(expr) {                                        \
+       const void *val = (expr);                                       \
+                                                                       \
+       if (IS_ERR(val)) {                                              \
+               ut_failf(uts, __FILE__, __LINE__, __func__,             \
+                        #expr " = NULL",                               \
+                        "Expected pointer, got error %ld",             \
+                        PTR_ERR(val));                                 \
+               return CMD_RET_FAILURE;                                 \
+       }                                                               \
+}
+
 /* Assert that an operation succeeds (returns 0) */
 #define ut_assertok(cond)      ut_asserteq(0, cond)