Index: tools/telemetry/third_party/typ/typ/tests/pool_test.py |
diff --git a/tools/telemetry/third_party/typ/typ/tests/pool_test.py b/tools/telemetry/third_party/typ/typ/tests/pool_test.py |
deleted file mode 100644 |
index e4b8bd754042cb45e46d8739fb34f9d340efdc12..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/typ/typ/tests/pool_test.py |
+++ /dev/null |
@@ -1,172 +0,0 @@ |
-# Copyright 2014 Dirk Pranke. All rights reserved. |
-# |
-# Licensed under the Apache License, Version 2.0 (the "License"); |
-# you may not use this file except in compliance with the License. |
-# You may obtain a copy of the License at |
-# |
-# http://www.apache.org/licenses/LICENSE-2.0 |
-# |
-# Unless required by applicable law or agreed to in writing, software |
-# distributed under the License is distributed on an "AS IS" BASIS, |
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-# See the License for the specific language governing permissions and |
-# limitations under the License. |
- |
-import sys |
-import unittest |
- |
-from typ import test_case |
-from typ.host import Host |
-from typ.pool import make_pool, _MessageType, _ProcessPool, _loop |
- |
- |
-def _pre(host, worker_num, context): # pylint: disable=W0613 |
- context['pre'] = True |
- return context |
- |
- |
-def _post(context): |
- context['post'] = True |
- return context |
- |
- |
-def _echo(context, msg): |
- return '%s/%s/%s' % (context['pre'], context['post'], msg) |
- |
- |
-def _error(context, msg): # pylint: disable=W0613 |
- raise Exception('_error() raised Exception') |
- |
- |
-def _interrupt(context, msg): # pylint: disable=W0613 |
- raise KeyboardInterrupt() |
- |
- |
-def _stub(*args): # pylint: disable=W0613 |
- return None |
- |
- |
-class TestPool(test_case.TestCase): |
- |
- def run_basic_test(self, jobs): |
- host = Host() |
- context = {'pre': False, 'post': False} |
- pool = make_pool(host, jobs, _echo, context, _pre, _post) |
- pool.send('hello') |
- pool.send('world') |
- msg1 = pool.get() |
- msg2 = pool.get() |
- pool.close() |
- final_contexts = pool.join() |
- self.assertEqual(set([msg1, msg2]), |
- set(['True/False/hello', |
- 'True/False/world'])) |
- expected_context = {'pre': True, 'post': True} |
- expected_final_contexts = [expected_context for _ in range(jobs)] |
- self.assertEqual(final_contexts, expected_final_contexts) |
- |
- def run_through_loop(self, callback=None, pool=None): |
- callback = callback or _stub |
- if pool: |
- host = pool.host |
- else: |
- host = Host() |
- pool = _ProcessPool(host, 0, _stub, None, _stub, _stub) |
- pool.send('hello') |
- |
- worker_num = 1 |
- _loop(pool.requests, pool.responses, host, worker_num, callback, |
- None, _stub, _stub, should_loop=False) |
- return pool |
- |
- def test_async_close(self): |
- host = Host() |
- pool = make_pool(host, 1, _echo, None, _stub, _stub) |
- pool.join() |
- |
- def test_basic_one_job(self): |
- self.run_basic_test(1) |
- |
- def test_basic_two_jobs(self): |
- self.run_basic_test(2) |
- |
- def test_join_discards_messages(self): |
- host = Host() |
- context = {'pre': False, 'post': False} |
- pool = make_pool(host, 2, _echo, context, _pre, _post) |
- pool.send('hello') |
- pool.close() |
- pool.join() |
- self.assertEqual(len(pool.discarded_responses), 1) |
- |
- @unittest.skipIf(sys.version_info.major == 3, 'fails under python3') |
- def test_join_gets_an_error(self): |
- host = Host() |
- pool = make_pool(host, 2, _error, None, _stub, _stub) |
- pool.send('hello') |
- pool.close() |
- try: |
- pool.join() |
- except Exception as e: |
- self.assertIn('_error() raised Exception', str(e)) |
- |
- def test_join_gets_an_interrupt(self): |
- host = Host() |
- pool = make_pool(host, 2, _interrupt, None, _stub, _stub) |
- pool.send('hello') |
- pool.close() |
- self.assertRaises(KeyboardInterrupt, pool.join) |
- |
- def test_loop(self): |
- pool = self.run_through_loop() |
- resp = pool.get() |
- self.assertEqual(resp, None) |
- pool.requests.put((_MessageType.Close, None)) |
- pool.close() |
- self.run_through_loop(pool=pool) |
- pool.join() |
- |
- def test_loop_fails_to_respond(self): |
- # This tests what happens if _loop() tries to send a response |
- # on a closed queue; we can't simulate this directly through the |
- # api in a single thread. |
- pool = self.run_through_loop() |
- pool.requests.put((_MessageType.Request, None)) |
- pool.requests.put((_MessageType.Close, None)) |
- self.run_through_loop(pool=pool) |
- pool.join() |
- |
- @unittest.skipIf(sys.version_info.major == 3, 'fails under python3') |
- def test_loop_get_raises_error(self): |
- pool = self.run_through_loop(_error) |
- self.assertRaises(Exception, pool.get) |
- pool.requests.put((_MessageType.Close, None)) |
- pool.close() |
- pool.join() |
- |
- def test_loop_get_raises_interrupt(self): |
- pool = self.run_through_loop(_interrupt) |
- self.assertRaises(KeyboardInterrupt, pool.get) |
- pool.requests.put((_MessageType.Close, None)) |
- pool.close() |
- pool.join() |
- |
- def test_pickling_errors(self): |
- def unpicklable_fn(): # pragma: no cover |
- pass |
- |
- host = Host() |
- jobs = 2 |
- self.assertRaises(ValueError, make_pool, |
- host, jobs, _stub, unpicklable_fn, None, None) |
- self.assertRaises(ValueError, make_pool, |
- host, jobs, _stub, None, unpicklable_fn, None) |
- self.assertRaises(ValueError, make_pool, |
- host, jobs, _stub, None, None, unpicklable_fn) |
- |
- def test_no_close(self): |
- host = Host() |
- context = {'pre': False, 'post': False} |
- pool = make_pool(host, 2, _echo, context, _pre, _post) |
- final_contexts = pool.join() |
- self.assertEqual(final_contexts, []) |