소스 검색

test: Add a macro to check that a value is not an error pointer

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>
Simon Glass 10 년 전
부모
커밋
85aeda4a62
1개의 변경된 파일15개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      include/test/ut.h

+ 15 - 0
include/test/ut.h

@@ -9,6 +9,8 @@
 #ifndef __TEST_UT_H
 #ifndef __TEST_UT_H
 #define __TEST_UT_H
 #define __TEST_UT_H
 
 
+#include <linux/err.h>
+
 struct unit_test_state;
 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) */
 /* Assert that an operation succeeds (returns 0) */
 #define ut_assertok(cond)	ut_asserteq(0, cond)
 #define ut_assertok(cond)	ut_asserteq(0, cond)