tesseract v5.3.3.20231005
googletest-shuffle-test.GTestShuffleUnitTest Class Reference
Inheritance diagram for googletest-shuffle-test.GTestShuffleUnitTest:

Public Member Functions

def setUp (self)
 
def testShufflePreservesNumberOfTests (self)
 
def testShuffleChangesTestOrder (self)
 
def testShuffleChangesTestCaseOrder (self)
 
def testShuffleDoesNotRepeatTest (self)
 
def testShuffleDoesNotCreateNewTest (self)
 
def testShuffleIncludesAllTests (self)
 
def testShuffleLeavesDeathTestsAtFront (self)
 
def testShuffleDoesNotInterleaveTestCases (self)
 
def testShuffleRestoresOrderAfterEachIteration (self)
 
def testShuffleGeneratesNewOrderInEachIteration (self)
 
def testShuffleShardedTestsPreservesPartition (self)
 

Detailed Description

Tests test shuffling.

Definition at line 167 of file googletest-shuffle-test.py.

Member Function Documentation

◆ setUp()

def googletest-shuffle-test.GTestShuffleUnitTest.setUp (   self)

Definition at line 170 of file googletest-shuffle-test.py.

170 def setUp(self):
172

◆ testShuffleChangesTestCaseOrder()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleChangesTestCaseOrder (   self)

Definition at line 187 of file googletest-shuffle-test.py.

187 def testShuffleChangesTestCaseOrder(self):
188 self.assert_(GetTestCases(SHUFFLED_ALL_TESTS) != GetTestCases(ALL_TESTS),
189 GetTestCases(SHUFFLED_ALL_TESTS))
190 self.assert_(
191 GetTestCases(SHUFFLED_ACTIVE_TESTS) != GetTestCases(ACTIVE_TESTS),
192 GetTestCases(SHUFFLED_ACTIVE_TESTS))
193 self.assert_(
194 GetTestCases(SHUFFLED_FILTERED_TESTS) != GetTestCases(FILTERED_TESTS),
195 GetTestCases(SHUFFLED_FILTERED_TESTS))
196 self.assert_(
197 GetTestCases(SHUFFLED_SHARDED_TESTS) != GetTestCases(SHARDED_TESTS),
198 GetTestCases(SHUFFLED_SHARDED_TESTS))
199

◆ testShuffleChangesTestOrder()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleChangesTestOrder (   self)

Definition at line 179 of file googletest-shuffle-test.py.

179 def testShuffleChangesTestOrder(self):
180 self.assert_(SHUFFLED_ALL_TESTS != ALL_TESTS, SHUFFLED_ALL_TESTS)
181 self.assert_(SHUFFLED_ACTIVE_TESTS != ACTIVE_TESTS, SHUFFLED_ACTIVE_TESTS)
182 self.assert_(SHUFFLED_FILTERED_TESTS != FILTERED_TESTS,
183 SHUFFLED_FILTERED_TESTS)
184 self.assert_(SHUFFLED_SHARDED_TESTS != SHARDED_TESTS,
185 SHUFFLED_SHARDED_TESTS)
186

◆ testShuffleDoesNotCreateNewTest()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleDoesNotCreateNewTest (   self)

Definition at line 214 of file googletest-shuffle-test.py.

214 def testShuffleDoesNotCreateNewTest(self):
215 for test in SHUFFLED_ALL_TESTS:
216 self.assert_(test in ALL_TESTS, '%s is an invalid test' % (test,))
217 for test in SHUFFLED_ACTIVE_TESTS:
218 self.assert_(test in ACTIVE_TESTS, '%s is an invalid test' % (test,))
219 for test in SHUFFLED_FILTERED_TESTS:
220 self.assert_(test in FILTERED_TESTS, '%s is an invalid test' % (test,))
221 for test in SHUFFLED_SHARDED_TESTS:
222 self.assert_(test in SHARDED_TESTS, '%s is an invalid test' % (test,))
223

◆ testShuffleDoesNotInterleaveTestCases()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleDoesNotInterleaveTestCases (   self)

Definition at line 253 of file googletest-shuffle-test.py.

253 def testShuffleDoesNotInterleaveTestCases(self):
254 self._VerifyTestCasesDoNotInterleave(SHUFFLED_ALL_TESTS)
255 self._VerifyTestCasesDoNotInterleave(SHUFFLED_ACTIVE_TESTS)
256 self._VerifyTestCasesDoNotInterleave(SHUFFLED_FILTERED_TESTS)
257 self._VerifyTestCasesDoNotInterleave(SHUFFLED_SHARDED_TESTS)
258

◆ testShuffleDoesNotRepeatTest()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleDoesNotRepeatTest (   self)

Definition at line 200 of file googletest-shuffle-test.py.

200 def testShuffleDoesNotRepeatTest(self):
201 for test in SHUFFLED_ALL_TESTS:
202 self.assertEqual(1, SHUFFLED_ALL_TESTS.count(test),
203 '%s appears more than once' % (test,))
204 for test in SHUFFLED_ACTIVE_TESTS:
205 self.assertEqual(1, SHUFFLED_ACTIVE_TESTS.count(test),
206 '%s appears more than once' % (test,))
207 for test in SHUFFLED_FILTERED_TESTS:
208 self.assertEqual(1, SHUFFLED_FILTERED_TESTS.count(test),
209 '%s appears more than once' % (test,))
210 for test in SHUFFLED_SHARDED_TESTS:
211 self.assertEqual(1, SHUFFLED_SHARDED_TESTS.count(test),
212 '%s appears more than once' % (test,))
213

◆ testShuffleGeneratesNewOrderInEachIteration()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleGeneratesNewOrderInEachIteration (   self)

Definition at line 291 of file googletest-shuffle-test.py.

291 def testShuffleGeneratesNewOrderInEachIteration(self):
292 [tests_in_iteration1, tests_in_iteration2, tests_in_iteration3] = (
294 {}, [ShuffleFlag(), RandomSeedFlag(1), RepeatFlag(3)]))
295
296 self.assert_(tests_in_iteration1 != tests_in_iteration2,
297 tests_in_iteration1)
298 self.assert_(tests_in_iteration1 != tests_in_iteration3,
299 tests_in_iteration1)
300 self.assert_(tests_in_iteration2 != tests_in_iteration3,
301 tests_in_iteration2)
302
def GetTestsForAllIterations(extra_env, args)

◆ testShuffleIncludesAllTests()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleIncludesAllTests (   self)

Definition at line 224 of file googletest-shuffle-test.py.

224 def testShuffleIncludesAllTests(self):
225 for test in ALL_TESTS:
226 self.assert_(test in SHUFFLED_ALL_TESTS, '%s is missing' % (test,))
227 for test in ACTIVE_TESTS:
228 self.assert_(test in SHUFFLED_ACTIVE_TESTS, '%s is missing' % (test,))
229 for test in FILTERED_TESTS:
230 self.assert_(test in SHUFFLED_FILTERED_TESTS, '%s is missing' % (test,))
231 for test in SHARDED_TESTS:
232 self.assert_(test in SHUFFLED_SHARDED_TESTS, '%s is missing' % (test,))
233

◆ testShuffleLeavesDeathTestsAtFront()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleLeavesDeathTestsAtFront (   self)

Definition at line 234 of file googletest-shuffle-test.py.

234 def testShuffleLeavesDeathTestsAtFront(self):
235 non_death_test_found = False
236 for test in SHUFFLED_ACTIVE_TESTS:
237 if 'DeathTest.' in test:
238 self.assert_(not non_death_test_found,
239 '%s appears after a non-death test' % (test,))
240 else:
241 non_death_test_found = True
242

◆ testShufflePreservesNumberOfTests()

def googletest-shuffle-test.GTestShuffleUnitTest.testShufflePreservesNumberOfTests (   self)

Definition at line 173 of file googletest-shuffle-test.py.

173 def testShufflePreservesNumberOfTests(self):
174 self.assertEqual(len(ALL_TESTS), len(SHUFFLED_ALL_TESTS))
175 self.assertEqual(len(ACTIVE_TESTS), len(SHUFFLED_ACTIVE_TESTS))
176 self.assertEqual(len(FILTERED_TESTS), len(SHUFFLED_FILTERED_TESTS))
177 self.assertEqual(len(SHARDED_TESTS), len(SHUFFLED_SHARDED_TESTS))
178

◆ testShuffleRestoresOrderAfterEachIteration()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleRestoresOrderAfterEachIteration (   self)

Definition at line 259 of file googletest-shuffle-test.py.

259 def testShuffleRestoresOrderAfterEachIteration(self):
260 # Get the test lists in all 3 iterations, using random seed 1, 2,
261 # and 3 respectively. Google Test picks a different seed in each
262 # iteration, and this test depends on the current implementation
263 # picking successive numbers. This dependency is not ideal, but
264 # makes the test much easier to write.
265 [tests_in_iteration1, tests_in_iteration2, tests_in_iteration3] = (
267 {}, [ShuffleFlag(), RandomSeedFlag(1), RepeatFlag(3)]))
268
269 # Make sure running the tests with random seed 1 gets the same
270 # order as in iteration 1 above.
271 [tests_with_seed1] = GetTestsForAllIterations(
272 {}, [ShuffleFlag(), RandomSeedFlag(1)])
273 self.assertEqual(tests_in_iteration1, tests_with_seed1)
274
275 # Make sure running the tests with random seed 2 gets the same
276 # order as in iteration 2 above. Success means that Google Test
277 # correctly restores the test order before re-shuffling at the
278 # beginning of iteration 2.
279 [tests_with_seed2] = GetTestsForAllIterations(
280 {}, [ShuffleFlag(), RandomSeedFlag(2)])
281 self.assertEqual(tests_in_iteration2, tests_with_seed2)
282
283 # Make sure running the tests with random seed 3 gets the same
284 # order as in iteration 3 above. Success means that Google Test
285 # correctly restores the test order before re-shuffling at the
286 # beginning of iteration 3.
287 [tests_with_seed3] = GetTestsForAllIterations(
288 {}, [ShuffleFlag(), RandomSeedFlag(3)])
289 self.assertEqual(tests_in_iteration3, tests_with_seed3)
290

◆ testShuffleShardedTestsPreservesPartition()

def googletest-shuffle-test.GTestShuffleUnitTest.testShuffleShardedTestsPreservesPartition (   self)

Definition at line 303 of file googletest-shuffle-test.py.

303 def testShuffleShardedTestsPreservesPartition(self):
304 # If we run M tests on N shards, the same M tests should be run in
305 # total, regardless of the random seeds used by the shards.
306 [tests1] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
307 SHARD_INDEX_ENV_VAR: '0'},
309 [tests2] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
310 SHARD_INDEX_ENV_VAR: '1'},
312 [tests3] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
313 SHARD_INDEX_ENV_VAR: '2'},
315 sorted_sharded_tests = tests1 + tests2 + tests3
316 sorted_sharded_tests.sort()
317 sorted_active_tests = []
318 sorted_active_tests.extend(ACTIVE_TESTS)
319 sorted_active_tests.sort()
320 self.assertEqual(sorted_active_tests, sorted_sharded_tests)
321

The documentation for this class was generated from the following file: