aboutsummaryrefslogtreecommitdiffhomepage
path: root/failtest
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-11-06 09:25:26 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-11-06 09:25:26 +0100
commit722916e19d86b224ec6c705e24d376def524154b (patch)
treef68ce5ba93b0ab12fbd838e6254b99086730901c /failtest
parentc6fefe5d8e3eda8af05c7dcb278551598dbb5d8e (diff)
bug #903: clean swap API regarding extra enable_if parameters, and add failtests for swap
Diffstat (limited to 'failtest')
-rw-r--r--failtest/CMakeLists.txt3
-rw-r--r--failtest/swap_1.cpp14
-rw-r--r--failtest/swap_2.cpp14
3 files changed, 31 insertions, 0 deletions
diff --git a/failtest/CMakeLists.txt b/failtest/CMakeLists.txt
index 5343dc152..d2fea7bdc 100644
--- a/failtest/CMakeLists.txt
+++ b/failtest/CMakeLists.txt
@@ -38,6 +38,9 @@ ei_add_failtest("ref_3")
ei_add_failtest("ref_4")
ei_add_failtest("ref_5")
+ei_add_failtest("swap_1")
+ei_add_failtest("swap_2")
+
if (EIGEN_FAILTEST_FAILURE_COUNT)
message(FATAL_ERROR
"${EIGEN_FAILTEST_FAILURE_COUNT} out of ${EIGEN_FAILTEST_COUNT} failtests FAILED. "
diff --git a/failtest/swap_1.cpp b/failtest/swap_1.cpp
new file mode 100644
index 000000000..106379720
--- /dev/null
+++ b/failtest/swap_1.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+int main()
+{
+ VectorXf a(10), b(10);
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+ const DenseBase<VectorXf> &ac(a);
+#else
+ DenseBase<VectorXf> &ac(a);
+#endif
+ b.swap(ac);
+}
diff --git a/failtest/swap_2.cpp b/failtest/swap_2.cpp
new file mode 100644
index 000000000..c130ba6e4
--- /dev/null
+++ b/failtest/swap_2.cpp
@@ -0,0 +1,14 @@
+#include "../Eigen/Core"
+
+using namespace Eigen;
+
+int main()
+{
+ VectorXf a(10), b(10);
+ VectorXf const &ac(a);
+#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
+ b.swap(ac);
+#else
+ b.swap(ac.const_cast_derived());
+#endif
+} \ No newline at end of file