summaryrefslogtreecommitdiffstats
path: root/tools/isolate/isolate_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/isolate/isolate_test.py')
-rwxr-xr-xtools/isolate/isolate_test.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/isolate/isolate_test.py b/tools/isolate/isolate_test.py
index eb44d53..aa1dd69 100755
--- a/tools/isolate/isolate_test.py
+++ b/tools/isolate/isolate_test.py
@@ -3,7 +3,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import hashlib
import os
+import re
import shutil
import subprocess
import sys
@@ -15,6 +17,10 @@ ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
class Isolate(unittest.TestCase):
def setUp(self):
+ # The reason is that isolate_test.py --ok is run in a temporary directory
+ # without access to isolate.py
+ import isolate
+ self.isolate = isolate
self.tempdir = tempfile.mkdtemp()
self.result = os.path.join(self.tempdir, 'result')
@@ -32,6 +38,22 @@ class Isolate(unittest.TestCase):
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
+ def test_help_modes(self):
+ # Check coherency in the help and implemented modes.
+ p = subprocess.Popen(
+ [sys.executable, os.path.join(ROOT_DIR, 'isolate.py'), '--help'],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT)
+ out = p.communicate()[0].splitlines()
+ self.assertEquals(0, p.returncode)
+ out = out[out.index('') + 1:]
+ out = out[:out.index('')]
+ modes = [re.match(r'^ (\w+) .+', l) for l in out]
+ modes = tuple(m.group(1) for m in modes if m)
+ self.assertEquals(self.isolate.VALID_MODES, modes)
+ for mode in modes:
+ self.assertTrue(hasattr(self, 'test_%s' % mode), mode)
+
def test_check(self):
cmd = [
'--mode', 'check',
@@ -52,6 +74,34 @@ class Isolate(unittest.TestCase):
pass
self.assertFalse(os.path.isfile(self.result))
+ def test_hashtable(self):
+ cmd = [
+ '--mode', 'hashtable',
+ '--outdir', self.tempdir,
+ 'isolate_test.py',
+ ]
+ self._execute(cmd)
+ # Calculate our hash.
+ h = hashlib.sha1()
+ h.update(open(__file__, 'rb').read())
+ digest = h.hexdigest()
+ self.assertEquals(
+ '{"files": {"isolate_test.py": {"sha1": "%s"}}}' % digest,
+ open(self.result, 'rb').read())
+ self.assertEquals(
+ sorted([digest, 'result']), sorted(os.listdir(self.tempdir)))
+
+ def test_remap(self):
+ cmd = [
+ '--mode', 'remap',
+ '--outdir', self.tempdir,
+ 'isolate_test.py',
+ ]
+ self._execute(cmd)
+ self.assertEquals('isolate_test.py\n', open(self.result, 'rb').read())
+ self.assertEquals(
+ ['isolate_test.py', 'result'], sorted(os.listdir(self.tempdir)))
+
def test_run(self):
cmd = [
'--mode', 'run',
@@ -84,6 +134,7 @@ def main():
return 0
if sys.argv[1] == '--fail':
return 1
+
unittest.main()