diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-03 09:55:33 +0100 |
| commit | cd44dc59cdfc39534aef4d417e9f3c412e3be139 (patch) | |
| tree | 8d89889ba95ed6ec9322e733846cc9cce9d7dff1 /Tools/Scripts/webkitpy/common/system/executive_unittest.py | |
| parent | d11f84f5b5cdc0d92a08af01b13472fdd5f9acb9 (diff) | |
| download | qtwebkit-cd44dc59cdfc39534aef4d417e9f3c412e3be139.tar.gz | |
Imported WebKit commit fce473cb4d55aa9fe9d0b0322a2fffecb731b961 (http://svn.webkit.org/repository/webkit/trunk@106560)
Diffstat (limited to 'Tools/Scripts/webkitpy/common/system/executive_unittest.py')
| -rw-r--r-- | Tools/Scripts/webkitpy/common/system/executive_unittest.py | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/Tools/Scripts/webkitpy/common/system/executive_unittest.py b/Tools/Scripts/webkitpy/common/system/executive_unittest.py index a0878f9ce..c63ff3555 100644 --- a/Tools/Scripts/webkitpy/common/system/executive_unittest.py +++ b/Tools/Scripts/webkitpy/common/system/executive_unittest.py @@ -33,9 +33,14 @@ import subprocess import sys import unittest +# Since we execute this script directly as part of the unit tests, we need to ensure +# that Tools/Scripts is in sys.path for the next imports to work correctly. +script_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +if script_dir not in sys.path: + sys.path.append(script_dir) + from webkitpy.common.system.executive import Executive, ScriptError from webkitpy.common.system.filesystem_mock import MockFileSystem -from webkitpy.test import cat, echo class ScriptErrorTest(unittest.TestCase): @@ -64,8 +69,11 @@ def never_ending_command(): return ['yes'] -class ExecutiveTest(unittest.TestCase): +def command_line(cmd, *args): + return [sys.executable, __file__, '--' + cmd] + list(args) + +class ExecutiveTest(unittest.TestCase): def assert_interpreter_for_content(self, intepreter, content): fs = MockFileSystem() file_path = None @@ -102,8 +110,8 @@ class ExecutiveTest(unittest.TestCase): executive = Executive() self.assertRaises(AssertionError, executive.run_command, "echo") self.assertRaises(AssertionError, executive.run_command, u"echo") - executive.run_command(echo.command_arguments('foo')) - executive.run_command(tuple(echo.command_arguments('foo'))) + executive.run_command(command_line('echo', 'foo')) + executive.run_command(tuple(command_line('echo', 'foo'))) def test_run_command_with_unicode(self): """Validate that it is safe to pass unicode() objects @@ -124,24 +132,24 @@ class ExecutiveTest(unittest.TestCase): executive = Executive() - output = executive.run_command(cat.command_arguments(), input=unicode_tor_input) + output = executive.run_command(command_line('cat'), input=unicode_tor_input) self.assertEquals(output, unicode_tor_output) - output = executive.run_command(echo.command_arguments("-n", unicode_tor_input)) + output = executive.run_command(command_line('echo', unicode_tor_input)) self.assertEquals(output, unicode_tor_output) - output = executive.run_command(echo.command_arguments("-n", unicode_tor_input), decode_output=False) + output = executive.run_command(command_line('echo', unicode_tor_input), decode_output=False) self.assertEquals(output, encoded_tor) # Make sure that str() input also works. - output = executive.run_command(cat.command_arguments(), input=encoded_tor, decode_output=False) + output = executive.run_command(command_line('cat'), input=encoded_tor, decode_output=False) self.assertEquals(output, encoded_tor) # FIXME: We should only have one run* method to test - output = executive.run_and_throw_if_fail(echo.command_arguments("-n", unicode_tor_input), quiet=True) + output = executive.run_and_throw_if_fail(command_line('echo', unicode_tor_input), quiet=True) self.assertEquals(output, unicode_tor_output) - output = executive.run_and_throw_if_fail(echo.command_arguments("-n", unicode_tor_input), quiet=True, decode_output=False) + output = executive.run_and_throw_if_fail(command_line('echo', unicode_tor_input), quiet=True, decode_output=False) self.assertEquals(output, encoded_tor) def test_kill_process(self): @@ -207,3 +215,17 @@ class ExecutiveTest(unittest.TestCase): executive = Executive() pids = executive.running_pids() self.assertTrue(os.getpid() in pids) + + +def main(platform, stdin, stdout, cmd, args): + if platform == 'win32' and hasattr(stdout, 'fileno'): + import msvcrt + msvcrt.setmode(stdout.fileno(), os.O_BINARY) + if cmd == '--cat': + stdout.write(stdin.read()) + elif cmd == '--echo': + stdout.write(' '.join(args)) + return 0 + +if __name__ == '__main__' and len(sys.argv) > 1 and sys.argv[1] in ('--cat', '--echo'): + sys.exit(main(sys.platform, sys.stdin, sys.stdout, sys.argv[1], sys.argv[2:])) |
