| Index: tools/testrunner/local/pool_unittest.py
|
| diff --git a/tools/testrunner/local/pool_unittest.py b/tools/testrunner/local/pool_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bf2b3f856245677ef749b2332467a31dd4a87e05
|
| --- /dev/null
|
| +++ b/tools/testrunner/local/pool_unittest.py
|
| @@ -0,0 +1,41 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2014 the V8 project authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import unittest
|
| +
|
| +from pool import Pool
|
| +
|
| +def Run(x):
|
| + if x == 10:
|
| + raise Exception("Expected exception triggered by test.")
|
| + return x
|
| +
|
| +class PoolTest(unittest.TestCase):
|
| + def testNormal(self):
|
| + results = set()
|
| + pool = Pool(3)
|
| + for result in pool.imap_unordered(Run, [[x] for x in range(0, 10)]):
|
| + results.add(result)
|
| + self.assertEquals(set(range(0, 10)), results)
|
| +
|
| + def testException(self):
|
| + results = set()
|
| + pool = Pool(3)
|
| + for result in pool.imap_unordered(Run, [[x] for x in range(0, 12)]):
|
| + # Item 10 will not appear in results due to an internal exception.
|
| + results.add(result)
|
| + expect = set(range(0, 12))
|
| + expect.remove(10)
|
| + self.assertEquals(expect, results)
|
| +
|
| + def testAdd(self):
|
| + results = set()
|
| + pool = Pool(3)
|
| + for result in pool.imap_unordered(Run, [[x] for x in range(0, 10)]):
|
| + results.add(result)
|
| + if result < 30:
|
| + pool.add([result + 20])
|
| + self.assertEquals(set(range(0, 10) + range(20, 30) + range(40, 50)),
|
| + results)
|
|
|