[
https://issues.apache.org/jira/browse/AVRO-2213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16635736#comment-16635736
]
ASF GitHub Bot commented on AVRO-2213:
--
thiru-apache closed pull request #327: AVRO-2213 C++ tests fail with boost 1.67+
URL: https://github.com/apache/avro/pull/327
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/lang/c++/test/CodecTests.cc b/lang/c++/test/CodecTests.cc
index f8bbe84d0..064351b3e 100644
--- a/lang/c++/test/CodecTests.cc
+++ b/lang/c++/test/CodecTests.cc
@@ -1363,9 +1363,17 @@ static const TestData4 data4BinaryOnly[] = {
#define COUNTOF(x) sizeof(x) / sizeof(x[0])
#define ENDOF(x)(x) + COUNTOF(x)
-#define ADD_TESTS(testSuite, Factory, testFunc, data) \
-testSuite.add(BOOST_PARAM_TEST_CASE(, \
-data, data + COUNTOF(data)))
+// Boost 1.67 and later expects test cases to have unique names. This dummy
+// helper functions leads to names which compose 'testFunc', 'Factory', and
+// 'data'.
+template
+Test testWithData(const Test , const Data ) {
+boost::ignore_unused(data);
+return test;
+}
+#define ADD_TESTS(testSuite, Factory, testFunc, data) \
+testSuite.add(BOOST_PARAM_TEST_CASE( \
+testWithData(, data), data, data + COUNTOF(data)))
struct BinaryEncoderFactory {
static EncoderPtr newEncoder(const ValidSchema& schema) {
diff --git a/lang/c++/test/DataFileTests.cc b/lang/c++/test/DataFileTests.cc
index 27a7ce9ca..1b1687af5 100644
--- a/lang/c++/test/DataFileTests.cc
+++ b/lang/c++/test/DataFileTests.cc
@@ -498,40 +498,67 @@ void addReaderTests(test_suite* ts, const
shared_ptr& t)
test_suite*
init_unit_test_suite( int argc, char* argv[] )
{
-test_suite* ts= BOOST_TEST_SUITE("DataFile tests");
-shared_ptr t1(new DataFileTest("test1.df", sch, isch));
-ts->add(BOOST_CLASS_TEST_CASE(::testWrite, t1));
-addReaderTests(ts, t1);
-
-shared_ptr t2(new DataFileTest("test2.df", sch, isch));
-ts->add(BOOST_CLASS_TEST_CASE(::testWriteGeneric, t2));
-addReaderTests(ts, t2);
-
-shared_ptr t3(new DataFileTest("test3.df", dsch, dblsch));
-ts->add(BOOST_CLASS_TEST_CASE(::testWriteDouble, t3));
-ts->add(BOOST_CLASS_TEST_CASE(::testReadDouble, t3));
-ts->add(BOOST_CLASS_TEST_CASE(::testReadDoubleTwoStep, t3));
-ts->add(BOOST_CLASS_TEST_CASE(::testReadDoubleTwoStepProject,
-t3));
-ts->add(BOOST_CLASS_TEST_CASE(::testCleanup, t3));
-
-shared_ptr t4(new DataFileTest("test4.df", dsch, dblsch));
-ts->add(BOOST_CLASS_TEST_CASE(::testTruncate, t4));
-ts->add(BOOST_CLASS_TEST_CASE(::testCleanup, t4));
-
-shared_ptr t5(new DataFileTest("test5.df", sch, isch));
-ts->add(BOOST_CLASS_TEST_CASE(::testWriteGenericByName, t5));
-addReaderTests(ts, t5);
-
-shared_ptr t6(new DataFileTest("test6.df", dsch, dblsch));
-ts->add(BOOST_CLASS_TEST_CASE(::testZip, t6));
-shared_ptr t8(new DataFileTest("test8.df", dsch, dblsch));
+{
+test_suite *ts = BOOST_TEST_SUITE("DataFile tests: test1.df");
+shared_ptr t1(new DataFileTest("test1.df", sch, isch));
+ts->add(BOOST_CLASS_TEST_CASE(::testWrite, t1));
+addReaderTests(ts, t1);
+boost::unit_test::framework::master_test_suite().add(ts);
+}
+{
+test_suite *ts = BOOST_TEST_SUITE("DataFile tests: test2.df");
+shared_ptr t2(new DataFileTest("test2.df", sch, isch));
+ts->add(BOOST_CLASS_TEST_CASE(::testWriteGeneric, t2));
+addReaderTests(ts, t2);
+boost::unit_test::framework::master_test_suite().add(ts);
+}
+{
+test_suite *ts = BOOST_TEST_SUITE("DataFile tests: test3.df");
+shared_ptr t3(new DataFileTest("test3.df", dsch,
dblsch));
+ts->add(BOOST_CLASS_TEST_CASE(::testWriteDouble, t3));
+ts->add(BOOST_CLASS_TEST_CASE(::testReadDouble, t3));
+ts->add(
+BOOST_CLASS_TEST_CASE(::testReadDoubleTwoStep, t3));
+ts->add(BOOST_CLASS_TEST_CASE(
+::testReadDoubleTwoStepProject, t3));
+ts->add(BOOST_CLASS_TEST_CASE(::testCleanup, t3));
+boost::unit_test::framework::master_test_suite().add(ts);
+}
+{
+test_suite *ts = BOOST_TEST_SUITE("DataFile tests: test4.df");
+shared_ptr t4(new DataFileTest("test4.df", dsch,
dblsch));
+ts->add(BOOST_CLASS_TEST_CASE(::testTruncate, t4));
+ts->add(BOOST_CLASS_TEST_CASE(::testCleanup, t4));
+boost::unit_test::framework::master_test_suite().add(ts);
+}
+{
+test_suite *ts = BOOST_TEST_SUITE("DataFile tests: test5.df");
+shared_ptr t5(new DataFileTest("test5.df", sch, isch));
+ts->add(
+