aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/main.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-06-19 16:38:26 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-06-19 16:38:26 +0200
commit6318d53b41641a6048a0311c584be7bcb32b3854 (patch)
tree9fbd6d8243f2530acb566db9d2063227cbac7231 /test/main.h
parent5c84dd56654b0bc3e6bc09773cc86438b27af005 (diff)
Factorize VERIFY_EVALUATION_COUNT in unit tests
Diffstat (limited to 'test/main.h')
-rw-r--r--test/main.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/main.h b/test/main.h
index 04c6722a4..ef471acc8 100644
--- a/test/main.h
+++ b/test/main.h
@@ -69,6 +69,26 @@
// shuts down ICC's remark #593: variable "XXX" was set but never used
#define TEST_SET_BUT_UNUSED_VARIABLE(X) EIGEN_UNUSED_VARIABLE(X)
+#ifdef TEST_ENABLE_TEMPORARY_TRACKING
+
+static long int nb_temporaries;
+
+inline void on_temporary_creation(long int size) {
+ // here's a great place to set a breakpoint when debugging failures in this test!
+ if(size!=0) nb_temporaries++;
+}
+
+#define EIGEN_DENSE_STORAGE_CTOR_PLUGIN { on_temporary_creation(size); }
+
+#define VERIFY_EVALUATION_COUNT(XPR,N) {\
+ nb_temporaries = 0; \
+ XPR; \
+ if(nb_temporaries!=N) std::cerr << "nb_temporaries == " << nb_temporaries << "\n"; \
+ VERIFY( (#XPR) && nb_temporaries==N ); \
+ }
+
+#endif
+
// the following file is automatically generated by cmake
#include "split_test_helper.h"