summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
Diffstat (limited to 'external')
-rw-r--r--external/cppunit/UnpackedTarball_cppunit.mk1
-rw-r--r--external/cppunit/order.patch.025
2 files changed, 26 insertions, 0 deletions
diff --git a/external/cppunit/UnpackedTarball_cppunit.mk b/external/cppunit/UnpackedTarball_cppunit.mk
index 24f75b43415f..c645c2bf4db3 100644
--- a/external/cppunit/UnpackedTarball_cppunit.mk
+++ b/external/cppunit/UnpackedTarball_cppunit.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cppunit,\
external/cppunit/CPPUNIT_PLUGIN_EXPORT.patch.0 \
external/cppunit/enable-win32-debug.patch \
external/cppunit/rtti.patch.0 \
+ external/cppunit/order.patch.0 \
))
ifeq ($(DISABLE_DYNLOADING),TRUE)
$(eval $(call gb_UnpackedTarball_add_patches,cppunit,\
diff --git a/external/cppunit/order.patch.0 b/external/cppunit/order.patch.0
new file mode 100644
index 000000000000..523b3cd704e1
--- /dev/null
+++ b/external/cppunit/order.patch.0
@@ -0,0 +1,25 @@
+--- src/cppunit/TestFactoryRegistry.cpp
++++ src/cppunit/TestFactoryRegistry.cpp
+@@ -143,13 +143,21 @@
+ void
+ TestFactoryRegistry::addTestToSuite( TestSuite *suite )
+ {
++ std::multimap<std::string, Test *> sorted;
+ for ( Factories::iterator it = m_factories.begin();
+ it != m_factories.end();
+ ++it )
+ {
+ TestFactory *factory = *it;
+- suite->addTest( factory->makeTest() );
++ Test *test = factory->makeTest();
++ sorted.insert({test->getName(), test});
+ }
++ // In the unlikely case of multiple Tests with identical names, those will
++ // still be added in random order:
++ for (auto const &i: sorted)
++ {
++ suite->addTest( i.second );
++ }
+ }
+
+