Index: tools/isolate/isolate_test.py |
diff --git a/tools/isolate/isolate_test.py b/tools/isolate/isolate_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..eb44d5341fdd1748899e36d15868aae437fade5c |
--- /dev/null |
+++ b/tools/isolate/isolate_test.py |
@@ -0,0 +1,91 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 The Chromium 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 os |
+import shutil |
+import subprocess |
+import sys |
+import tempfile |
+import unittest |
+ |
+ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) |
+ |
+ |
+class Isolate(unittest.TestCase): |
+ def setUp(self): |
+ self.tempdir = tempfile.mkdtemp() |
+ self.result = os.path.join(self.tempdir, 'result') |
+ |
+ def tearDown(self): |
+ shutil.rmtree(self.tempdir) |
+ |
+ def _execute(self, args): |
+ cmd = [ |
+ sys.executable, os.path.join(ROOT_DIR, 'isolate.py'), |
+ '--root', ROOT_DIR, |
+ '--result', self.result, |
+ ] |
+ subprocess.check_call( |
+ cmd + args, |
+ stdout=subprocess.PIPE, |
+ stderr=subprocess.STDOUT) |
+ |
+ def test_check(self): |
+ cmd = [ |
+ '--mode', 'check', |
+ 'isolate_test.py', |
+ ] |
+ self._execute(cmd) |
+ self.assertTrue(os.path.isfile(self.result)) |
+ |
+ def test_check_non_existant(self): |
+ cmd = [ |
+ '--mode', 'check', |
+ 'NonExistentFile', |
+ ] |
+ try: |
+ self._execute(cmd) |
+ self.fail() |
+ except subprocess.CalledProcessError: |
+ pass |
+ self.assertFalse(os.path.isfile(self.result)) |
+ |
+ def test_run(self): |
+ cmd = [ |
+ '--mode', 'run', |
+ 'isolate_test.py', |
+ '--', |
+ sys.executable, 'isolate_test.py', '--ok', |
+ ] |
+ self._execute(cmd) |
+ self.assertTrue(os.path.isfile(self.result)) |
+ |
+ def test_run_fail(self): |
+ cmd = [ |
+ '--mode', 'run', |
+ 'isolate_test.py', |
+ '--', |
+ sys.executable, 'isolate_test.py', '--fail', |
+ ] |
+ try: |
+ self._execute(cmd) |
+ self.fail() |
+ except subprocess.CalledProcessError: |
+ pass |
+ self.assertFalse(os.path.isfile(self.result)) |
+ |
+ |
+def main(): |
+ if len(sys.argv) == 1: |
+ unittest.main() |
+ if sys.argv[1] == '--ok': |
+ return 0 |
+ if sys.argv[1] == '--fail': |
+ return 1 |
+ unittest.main() |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |