Skip to content

Commit

Permalink
[Tests] workaround Boost 1.72 unittest issue
Browse files Browse the repository at this point in the history
With Boost 1.72.0, if the sinusoidal comparison and the sinusoidal
serialization tests are in the same test file, the tests succeed, but
are followed by a "free(): invalid pointer" exception, marking the test
as failed.

This makes no sense, but the workaround is trivial.
  • Loading branch information
nim65s committed Jul 23, 2020
1 parent 4113a35 commit 6531599
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 24 deletions.
1 change: 1 addition & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ TARGET_COMPILE_DEFINITIONS(curves_tests PRIVATE -DTEST_DATA_PATH="${CMAKE_CURREN
SET(${PROJECT_NAME}_TESTS
test-constant
test-sinusoidal
test-sinusoidal-serialization
test-minjerk
)

Expand Down
36 changes: 36 additions & 0 deletions tests/test-sinusoidal-serialization.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#define BOOST_TEST_MODULE test_sinusoidal

#include "curves/fwd.h"
#include "curves/sinusoidal.h"
#include "curves/serialization/curves.hpp"
#include <boost/test/included/unit_test.hpp>

using namespace curves;

BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)

BOOST_AUTO_TEST_CASE(serialization) {
std::string fileName("fileTest_sinusoidal");
pointX_t p0(3), amp(3);
p0 << -1, 0.5, 2.;
amp << 2, -0.8, -1;
double T = 1.5;
double phi = 0.;

sinusoidal_t c(p0, amp, T, phi, 0., 20.);

c.saveAsText<sinusoidal_t>(fileName + ".txt");
c.saveAsXML<sinusoidal_t>(fileName + ".xml", "sinusoidal");
c.saveAsBinary<sinusoidal_t>(fileName);

sinusoidal_t c_txt, c_xml, c_binary;
c_txt.loadFromText<sinusoidal_t>(fileName + ".txt");
c_xml.loadFromXML<sinusoidal_t>(fileName + ".xml", "sinusoidal");
c_binary.loadFromBinary<sinusoidal_t>(fileName);

BOOST_CHECK(c == c_txt);
BOOST_CHECK(c == c_xml);
BOOST_CHECK(c == c_binary);
}

BOOST_AUTO_TEST_SUITE_END()
24 changes: 0 additions & 24 deletions tests/test-sinusoidal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,28 +238,4 @@ BOOST_AUTO_TEST_CASE(comparison) {
BOOST_CHECK(c1 != cn6);
}

BOOST_AUTO_TEST_CASE(serialization) {
std::string fileName("fileTest_sinusoidal");
pointX_t p0(3), amp(3);
p0 << -1, 0.5, 2.;
amp << 2, -0.8, -1;
double T = 1.5;
double phi = 0.;

sinusoidal_t c(p0, amp, T, phi, 0., 20.);

c.saveAsText<sinusoidal_t>(fileName + ".txt");
c.saveAsXML<sinusoidal_t>(fileName + ".xml", "sinusoidal");
c.saveAsBinary<sinusoidal_t>(fileName);

sinusoidal_t c_txt, c_xml, c_binary;
c_txt.loadFromText<sinusoidal_t>(fileName + ".txt");
c_xml.loadFromXML<sinusoidal_t>(fileName + ".xml", "sinusoidal");
c_binary.loadFromBinary<sinusoidal_t>(fileName);

BOOST_CHECK(c == c_txt);
BOOST_CHECK(c == c_xml);
BOOST_CHECK(c == c_binary);
}

BOOST_AUTO_TEST_SUITE_END()

0 comments on commit 6531599

Please sign in to comment.