summaryrefslogtreecommitdiff
path: root/external/cppunit/order.patch.0
blob: 523b3cd704e1d92023f2aec912c2a45a41faf648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 );
+  }
 }