From 80500b693c8d23148cee91b10f49df6b3caadf98 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Sun, 6 Feb 2011 11:55:51 -0500 Subject: add more failtests --- failtest/CMakeLists.txt | 14 +++++++++++--- failtest/block_on_const_type_actually_const_0.cpp | 16 ++++++++++++++++ failtest/block_on_const_type_actually_const_1.cpp | 16 ++++++++++++++++ failtest/diagonal_on_const_type_actually_const.cpp | 16 ++++++++++++++++ failtest/map_nonconst_ctor_on_const_ptr_4.cpp | 15 +++++++++++++++ failtest/map_on_const_type_actually_const_0.cpp | 15 +++++++++++++++ failtest/map_on_const_type_actually_const_1.cpp | 15 +++++++++++++++ failtest/transpose_on_const_type_actually_const.cpp | 16 ++++++++++++++++ 8 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 failtest/block_on_const_type_actually_const_0.cpp create mode 100644 failtest/block_on_const_type_actually_const_1.cpp create mode 100644 failtest/diagonal_on_const_type_actually_const.cpp create mode 100644 failtest/map_nonconst_ctor_on_const_ptr_4.cpp create mode 100644 failtest/map_on_const_type_actually_const_0.cpp create mode 100644 failtest/map_on_const_type_actually_const_1.cpp create mode 100644 failtest/transpose_on_const_type_actually_const.cpp (limited to 'failtest') diff --git a/failtest/CMakeLists.txt b/failtest/CMakeLists.txt index b6e26d5a8..5afa2ac82 100644 --- a/failtest/CMakeLists.txt +++ b/failtest/CMakeLists.txt @@ -17,12 +17,20 @@ ei_add_failtest("map_nonconst_ctor_on_const_ptr_0") ei_add_failtest("map_nonconst_ctor_on_const_ptr_1") ei_add_failtest("map_nonconst_ctor_on_const_ptr_2") ei_add_failtest("map_nonconst_ctor_on_const_ptr_3") +ei_add_failtest("map_nonconst_ctor_on_const_ptr_4") +ei_add_failtest("map_on_const_type_actually_const_0") +ei_add_failtest("map_on_const_type_actually_const_1") +ei_add_failtest("block_on_const_type_actually_const_0") +ei_add_failtest("block_on_const_type_actually_const_1") +ei_add_failtest("transpose_on_const_type_actually_const") +ei_add_failtest("diagonal_on_const_type_actually_const") if (EIGEN_FAILTEST_FAILURE_COUNT) - message(FATAL_ERROR "${EIGEN_FAILTEST_FAILURE_COUNT} out of ${EIGEN_FAILTEST_COUNT} failtests FAILED. " - "Failtests succeed when they generate build errors. " - "To debug these failures, manually compile these programs in ${CMAKE_CURRENT_SOURCE_DIR}.") + message(FATAL_ERROR + "${EIGEN_FAILTEST_FAILURE_COUNT} out of ${EIGEN_FAILTEST_COUNT} failtests FAILED. " + "To debug these failures, manually compile these programs in ${CMAKE_CURRENT_SOURCE_DIR}, " + "with and without #define EIGEN_SHOULD_FAIL_TO_BUILD.") else() message(STATUS "Failtest SUCCESS: all ${EIGEN_FAILTEST_COUNT} failtests passed.") message(STATUS "") diff --git a/failtest/block_on_const_type_actually_const_0.cpp b/failtest/block_on_const_type_actually_const_0.cpp new file mode 100644 index 000000000..009bebece --- /dev/null +++ b/failtest/block_on_const_type_actually_const_0.cpp @@ -0,0 +1,16 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(){ + Matrix3f m; + Block(m, 0, 0, 3, 3).coeffRef(0, 0) = 1.0f; +} + +int main() {} diff --git a/failtest/block_on_const_type_actually_const_1.cpp b/failtest/block_on_const_type_actually_const_1.cpp new file mode 100644 index 000000000..4c3e93ffe --- /dev/null +++ b/failtest/block_on_const_type_actually_const_1.cpp @@ -0,0 +1,16 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(){ + MatrixXf m; + Block(m, 0, 0).coeffRef(0, 0) = 1.0f; +} + +int main() {} diff --git a/failtest/diagonal_on_const_type_actually_const.cpp b/failtest/diagonal_on_const_type_actually_const.cpp new file mode 100644 index 000000000..d4b2fd9b8 --- /dev/null +++ b/failtest/diagonal_on_const_type_actually_const.cpp @@ -0,0 +1,16 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(){ + MatrixXf m; + Diagonal(m).coeffRef(0) = 1.0f; +} + +int main() {} diff --git a/failtest/map_nonconst_ctor_on_const_ptr_4.cpp b/failtest/map_nonconst_ctor_on_const_ptr_4.cpp new file mode 100644 index 000000000..c3e8c952c --- /dev/null +++ b/failtest/map_nonconst_ctor_on_const_ptr_4.cpp @@ -0,0 +1,15 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER +#else +#define CV_QUALIFIER const +#endif + +using namespace Eigen; + +void foo(const float *ptr, DenseIndex rows, DenseIndex cols){ + Map > m(ptr, rows, cols, OuterStride<>(2)); +} + +int main() {} diff --git a/failtest/map_on_const_type_actually_const_0.cpp b/failtest/map_on_const_type_actually_const_0.cpp new file mode 100644 index 000000000..8cb6aa0cd --- /dev/null +++ b/failtest/map_on_const_type_actually_const_0.cpp @@ -0,0 +1,15 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(float *ptr){ + Map(ptr, 1, 1).coeffRef(0,0) = 1.0f; +} + +int main() {} diff --git a/failtest/map_on_const_type_actually_const_1.cpp b/failtest/map_on_const_type_actually_const_1.cpp new file mode 100644 index 000000000..04e067c34 --- /dev/null +++ b/failtest/map_on_const_type_actually_const_1.cpp @@ -0,0 +1,15 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(float *ptr){ + Map(ptr).coeffRef(0) = 1.0f; +} + +int main() {} diff --git a/failtest/transpose_on_const_type_actually_const.cpp b/failtest/transpose_on_const_type_actually_const.cpp new file mode 100644 index 000000000..d0b7d0df6 --- /dev/null +++ b/failtest/transpose_on_const_type_actually_const.cpp @@ -0,0 +1,16 @@ +#include "../Eigen/Core" + +#ifdef EIGEN_SHOULD_FAIL_TO_BUILD +#define CV_QUALIFIER const +#else +#define CV_QUALIFIER +#endif + +using namespace Eigen; + +void foo(){ + MatrixXf m; + Transpose(m).coeffRef(0, 0) = 1.0f; +} + +int main() {} -- cgit v1.2.3