summaryrefslogtreecommitdiff
path: root/Tools/Scripts/webkitpy/common/system/executive_unittest.py
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-03 09:55:33 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-03 09:55:33 +0100
commitcd44dc59cdfc39534aef4d417e9f3c412e3be139 (patch)
tree8d89889ba95ed6ec9322e733846cc9cce9d7dff1 /Tools/Scripts/webkitpy/common/system/executive_unittest.py
parentd11f84f5b5cdc0d92a08af01b13472fdd5f9acb9 (diff)
downloadqtwebkit-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.py42
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:]))