Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py (281447 => 281448)
--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py 2021-08-23 16:01:29 UTC (rev 281447)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py 2021-08-23 16:33:58 UTC (rev 281448)
@@ -22,6 +22,7 @@
import logging
import time
+import sys
import unittest
from webkitcorepy import OutputCapture, TaskPool, log as logger
@@ -59,16 +60,6 @@
class TaskPoolUnittest(unittest.TestCase):
alphabet = 'abcdefghijklmnopqrstuvwxyz'
- def test_single(self):
- with OutputCapture(level=logging.WARNING) as captured:
- with TaskPool(workers=1, force_fork=True) as pool:
- pool.do(action, 'a')
- pool.do(log, logging.WARNING, '1')
- pool.wait()
-
- self.assertEqual(captured.stdout.getvalue(), 'action(a)\n')
- self.assertEqual(captured.webkitcorepy.log.getvalue(), 'worker/0 1\n')
-
def test_single_no_fork(self):
with OutputCapture(level=logging.WARNING) as captured:
with TaskPool(workers=1, force_fork=False) as pool:
@@ -79,20 +70,6 @@
self.assertEqual(captured.stdout.getvalue(), 'action(a)\n')
self.assertEqual(captured.webkitcorepy.log.getvalue(), '1\n')
- def test_multiple(self):
- with OutputCapture(level=logging.INFO) as captured:
- with TaskPool(workers=4) as pool:
- for character in self.alphabet:
- pool.do(action, character)
- pool.wait()
-
- lines = captured.stdout.getvalue().splitlines()
- self.assertEquals(sorted(lines), ['action({})'.format(character) for character in self.alphabet])
- self.assertEqual(
- sorted(captured.webkitcorepy.log.getvalue().splitlines()),
- sorted(['worker/{} starting'.format(number) for number in range(4)] + ['worker/{} stopping'.format(number) for number in range(4)]),
- )
-
def test_callback(self):
sequence = []
@@ -106,17 +83,6 @@
''.join(sorted(sequence)),
)
- def test_exception(self):
- with OutputCapture(level=logging.INFO) as captured:
- with self.assertRaises(RuntimeError):
- with TaskPool(workers=1, force_fork=True) as pool:
- pool.do(exception, 'Testing exception')
- pool.wait()
- self.assertEqual(
- captured.webkitcorepy.log.getvalue().splitlines(),
- ['worker/0 starting', 'worker/0 stopping'],
- )
-
def test_exception_no_fork(self):
with OutputCapture(level=logging.INFO) as captured:
with self.assertRaises(RuntimeError):
@@ -125,46 +91,82 @@
pool.wait()
self.assertEqual(captured.webkitcorepy.log.getvalue(), '')
- def test_setup(self):
- with OutputCapture() as captured:
- with TaskPool(workers=4, setup=setup) as pool:
- for character in self.alphabet:
- pool.do(action, character)
- pool.wait()
- self.assertEqual(
- sorted(captured.webkitcorepy.log.getvalue().splitlines()),
- ['worker/{} Setting up'.format(x) for x in range(4)],
- )
+ if sys.platform != 'cygwin':
+ def test_single(self):
+ with OutputCapture(level=logging.WARNING) as captured:
+ with TaskPool(workers=1, force_fork=True) as pool:
+ pool.do(action, 'a')
+ pool.do(log, logging.WARNING, '1')
+ pool.wait()
- def test_setup_arguments(self):
- with OutputCapture() as captured:
- with TaskPool(workers=4, setup=setup, setupargs=['Setup argument']) as pool:
- for character in self.alphabet:
- pool.do(action, character)
- pool.wait()
- self.assertEqual(
- sorted(captured.webkitcorepy.log.getvalue().splitlines()),
- ['worker/{} Setup argument'.format(x) for x in range(4)],
- )
+ self.assertEqual(captured.stdout.getvalue(), 'action(a)\n')
+ self.assertEqual(captured.webkitcorepy.log.getvalue(), 'worker/0 1\n')
- def test_teardown(self):
- with OutputCapture() as captured:
- with TaskPool(workers=4, teardown=teardown) as pool:
- for character in self.alphabet:
- pool.do(action, character)
- pool.wait()
- self.assertEqual(
- sorted(captured.webkitcorepy.log.getvalue().splitlines()),
- ['worker/{} Tearing down'.format(x) for x in range(4)],
- )
+ def test_multiple(self):
+ with OutputCapture(level=logging.INFO) as captured:
+ with TaskPool(workers=4) as pool:
+ for character in self.alphabet:
+ pool.do(action, character)
+ pool.wait()
- def test_teardown_arguments(self):
- with OutputCapture() as captured:
- with TaskPool(workers=4, teardown=teardown, teardownargs=['Teardown argument']) as pool:
- for character in self.alphabet:
- pool.do(action, character)
- pool.wait()
- self.assertEqual(
- sorted(captured.webkitcorepy.log.getvalue().splitlines()),
- ['worker/{} Teardown argument'.format(x) for x in range(4)],
- )
+ lines = captured.stdout.getvalue().splitlines()
+ self.assertEquals(sorted(lines), ['action({})'.format(character) for character in self.alphabet])
+ self.assertEqual(
+ sorted(captured.webkitcorepy.log.getvalue().splitlines()),
+ sorted(['worker/{} starting'.format(number) for number in range(4)] + ['worker/{} stopping'.format(number) for number in range(4)]),
+ )
+
+ def test_exception(self):
+ with OutputCapture(level=logging.INFO) as captured:
+ with self.assertRaises(RuntimeError):
+ with TaskPool(workers=1, force_fork=True) as pool:
+ pool.do(exception, 'Testing exception')
+ pool.wait()
+ self.assertEqual(
+ captured.webkitcorepy.log.getvalue().splitlines(),
+ ['worker/0 starting', 'worker/0 stopping'],
+ )
+
+ def test_setup(self):
+ with OutputCapture() as captured:
+ with TaskPool(workers=4, setup=setup) as pool:
+ for character in self.alphabet:
+ pool.do(action, character)
+ pool.wait()
+ self.assertEqual(
+ sorted(captured.webkitcorepy.log.getvalue().splitlines()),
+ ['worker/{} Setting up'.format(x) for x in range(4)],
+ )
+
+ def test_setup_arguments(self):
+ with OutputCapture() as captured:
+ with TaskPool(workers=4, setup=setup, setupargs=['Setup argument']) as pool:
+ for character in self.alphabet:
+ pool.do(action, character)
+ pool.wait()
+ self.assertEqual(
+ sorted(captured.webkitcorepy.log.getvalue().splitlines()),
+ ['worker/{} Setup argument'.format(x) for x in range(4)],
+ )
+
+ def test_teardown(self):
+ with OutputCapture() as captured:
+ with TaskPool(workers=4, teardown=teardown) as pool:
+ for character in self.alphabet:
+ pool.do(action, character)
+ pool.wait()
+ self.assertEqual(
+ sorted(captured.webkitcorepy.log.getvalue().splitlines()),
+ ['worker/{} Tearing down'.format(x) for x in range(4)],
+ )
+
+ def test_teardown_arguments(self):
+ with OutputCapture() as captured:
+ with TaskPool(workers=4, teardown=teardown, teardownargs=['Teardown argument']) as pool:
+ for character in self.alphabet:
+ pool.do(action, character)
+ pool.wait()
+ self.assertEqual(
+ sorted(captured.webkitcorepy.log.getvalue().splitlines()),
+ ['worker/{} Teardown argument'.format(x) for x in range(4)],
+ )
Modified: trunk/Tools/Scripts/webkitpy/common/system/abstractexecutive.py (281447 => 281448)
--- trunk/Tools/Scripts/webkitpy/common/system/abstractexecutive.py 2021-08-23 16:01:29 UTC (rev 281447)
+++ trunk/Tools/Scripts/webkitpy/common/system/abstractexecutive.py 2021-08-23 16:33:58 UTC (rev 281448)
@@ -107,8 +107,8 @@
def command_for_printing(self, args):
"""Returns a print-ready string representing command args.
The string should be copy/paste ready for execution in a shell."""
- args = self._stringify_args(args)
- return string_utils.decode(string_utils.encode(' '.join(args), encoding='unicode_escape'))
+ args = [elm for elm in self._stringify_args(args)]
+ return string_utils.decode(string_utils.encode((b' ' if isinstance(args[0], bytes) else ' ').join(args), encoding='unicode_escape'))
def run_command(self, args, cwd=None, env=None, input=None, stdout=None, error_handler=None, ignore_errors=False,
return_exit_code=False, return_stderr=True, decode_output=True):
Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (281447 => 281448)
--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2021-08-23 16:01:29 UTC (rev 281447)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2021-08-23 16:33:58 UTC (rev 281448)
@@ -251,4 +251,4 @@
if version:
return version
# Note that this should only ever be called on windows, so this should always work.
- return self._executive.run_command(['cmd', '/c', 'ver'], decode_output=False)
+ return self._executive.run_command(['cmd', '/c', 'ver'], decode_output=True)