[PATCH i-g-t] Working on introducing igt trybot

Arkadiusz Hiler arkadiusz.hiler at intel.com
Tue Apr 9 07:56:50 UTC 2019


also, errno fiddlingtests by the way

v2: fix runner test
---
 lib/igt_core.h        | 25 ++++++++++++++++++-------
 runner/runner_tests.c |  4 +++-
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/lib/igt_core.h b/lib/igt_core.h
index 47ffd9e7..cdc5a939 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -41,6 +41,7 @@
 #include <stdarg.h>
 #include <getopt.h>
 #include <unistd.h>
+#include <errno.h>
 
 #ifndef IGT_LOG_DOMAIN
 #define IGT_LOG_DOMAIN (NULL)
@@ -360,7 +361,7 @@ static inline void igt_ignore_warn(bool value)
  * Should be used everywhere where a test checks results.
  */
 #define igt_assert(expr) \
-	do { if (!(expr)) \
+	do { errno = 0; if (!(expr)) \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, #expr , NULL); \
 	} while (0)
 
@@ -377,7 +378,7 @@ static inline void igt_ignore_warn(bool value)
  * information to help debugging test failures.
  */
 #define igt_assert_f(expr, f...) \
-	do { if (!(expr)) \
+	do { errno = 0; if (!(expr)) \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, #expr , f); \
 	} while (0)
 
@@ -421,7 +422,9 @@ static inline void igt_ignore_warn(bool value)
  */
 #define igt_assert_cmpint(n1, cmp, ncmp, n2) \
 	do { \
-		int __n1 = (n1), __n2 = (n2); \
+		int __n1, __n2; \
+		errno = 0; \
+		__n1 = (n1); __n2 = (n2); \
 		if (__n1 cmp __n2) ; else \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
 				  #n1 " " #cmp " " #n2, \
@@ -439,7 +442,9 @@ static inline void igt_ignore_warn(bool value)
  */
 #define igt_assert_cmpuint(n1, cmp, ncmp, n2) \
 	do { \
-		uint32_t __n1 = (n1), __n2 = (n2); \
+		uint32_t __n1, __n2; \
+		errno = 0; \
+		__n1 = (n1); __n2 = (n2); \
 		if (__n1 cmp __n2) ; else \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
 				  #n1 " " #cmp " " #n2, \
@@ -457,7 +462,9 @@ static inline void igt_ignore_warn(bool value)
  */
 #define igt_assert_cmps64(n1, cmp, ncmp, n2) \
 	do { \
-		int64_t __n1 = (n1), __n2 = (n2); \
+		int64_t __n1, __n2; \
+		errno = 0; \
+		__n1 = (n1); __n2 = (n2); \
 		if (__n1 cmp __n2) ; else \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
 				  #n1 " " #cmp " " #n2, \
@@ -475,7 +482,9 @@ static inline void igt_ignore_warn(bool value)
  */
 #define igt_assert_cmpu64(n1, cmp, ncmp, n2) \
 	do { \
-		uint64_t __n1 = (n1), __n2 = (n2); \
+		uint64_t __n1, __n2; \
+		errno = 0; \
+		__n1 = (n1); __n2 = (n2); \
 		if (__n1 cmp __n2) ; else \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
 				  #n1 " " #cmp " " #n2, \
@@ -493,7 +502,9 @@ static inline void igt_ignore_warn(bool value)
  */
 #define igt_assert_cmpdouble(n1, cmp, ncmp, n2) \
 	do { \
-		double __n1 = (n1), __n2 = (n2); \
+		double __n1, __n2; \
+		errno = 0; \
+		__n1 = (n1); __n2 = (n2); \
 		if (__n1 cmp __n2) ; else \
 		__igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
 				  #n1 " " #cmp " " #n2, \
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index ade78b18..47cdd813 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -1273,6 +1273,7 @@ igt_main
 
 	igt_subtest("file-descriptor-leakage") {
 		int i;
+		int err;
 
 		/*
 		 * This is a build-time test, and it's expected that
@@ -1285,7 +1286,8 @@ igt_main
 		for (i = 3; i < 400; i++) {
 			errno = 0;
 			igt_assert_neq(close(i), 0);
-			igt_assert_eq(errno, EBADF);
+			err = errno;
+			igt_assert_eq(err, EBADF);
 		}
 	}
 
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list