Index: build/android/pylib/base/shard_unittest.py |
diff --git a/build/android/pylib/base/shard_unittest.py b/build/android/pylib/base/shard_unittest.py |
index 79aa5b20d894be931b0d2d3b827922569837e91d..e06d98dc2e0942539087eea8e60248cd7ac9ea15 100644 |
--- a/build/android/pylib/base/shard_unittest.py |
+++ b/build/android/pylib/base/shard_unittest.py |
@@ -25,8 +25,9 @@ class TestException(Exception): |
class MockRunner(object): |
"""A mock TestRunner.""" |
- def __init__(self, device='0'): |
+ def __init__(self, device='0', shard_index=0): |
self.device = device |
+ self.shard_index = shard_index |
self.setups = 0 |
self.teardowns = 0 |
@@ -50,8 +51,8 @@ class MockRunnerFail(MockRunner): |
class MockRunnerFailTwice(MockRunner): |
- def __init__(self, device='0'): |
- super(MockRunnerFailTwice, self).__init__(device) |
+ def __init__(self, device='0', shard_index=0): |
+ super(MockRunnerFailTwice, self).__init__(device, shard_index) |
self._fails = 0 |
def RunTest(self, test): |
@@ -97,10 +98,16 @@ class TestFunctions(unittest.TestCase): |
def testSetUp(self): |
runners = [] |
- shard._SetUp(MockRunner, '0', runners) |
+ counter = shard._ThreadSafeCounter() |
+ shard._SetUp(MockRunner, '0', runners, counter) |
self.assertEqual(len(runners), 1) |
self.assertEqual(runners[0].setups, 1) |
+ def testThreadSafeCounter(self): |
+ counter = shard._ThreadSafeCounter() |
+ for i in xrange(5): |
+ self.assertEqual(counter.GetAndIncrement(), i) |
+ |
class TestThreadGroupFunctions(unittest.TestCase): |
"""Tests for shard._RunAllTests and shard._CreateRunners.""" |
@@ -111,6 +118,10 @@ class TestThreadGroupFunctions(unittest.TestCase): |
runners = shard._CreateRunners(MockRunner, ['0', '1']) |
for runner in runners: |
self.assertEqual(runner.setups, 1) |
+ self.assertEqual(set([r.device for r in runners]), |
+ set(['0', '1'])) |
+ self.assertEqual(set([r.shard_index for r in runners]), |
+ set([0, 1])) |
def testRun(self): |
runners = [MockRunner('0'), MockRunner('1')] |