| Index: swarm_client/googletest/tests/fix_test_cases_smoke_test.py
|
| ===================================================================
|
| --- swarm_client/googletest/tests/fix_test_cases_smoke_test.py (revision 235167)
|
| +++ swarm_client/googletest/tests/fix_test_cases_smoke_test.py (working copy)
|
| @@ -1,181 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright 2013 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 hashlib
|
| -import json
|
| -import logging
|
| -import os
|
| -import shutil
|
| -import subprocess
|
| -import sys
|
| -import tempfile
|
| -import unittest
|
| -
|
| -BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| -GOOGLETEST_DIR = os.path.dirname(BASE_DIR)
|
| -ROOT_DIR = os.path.dirname(GOOGLETEST_DIR)
|
| -
|
| -sys.path.insert(0, ROOT_DIR)
|
| -
|
| -import isolateserver
|
| -import run_isolated
|
| -
|
| -
|
| -class FixTestCases(unittest.TestCase):
|
| - def setUp(self):
|
| - self.tempdir = tempfile.mkdtemp(prefix='fix_test_case')
|
| - self.srcdir = os.path.join(self.tempdir, 'srcdir')
|
| - os.mkdir(self.srcdir)
|
| -
|
| - def tearDown(self):
|
| - if self.tempdir:
|
| - if VERBOSE:
|
| - # If -v is used, this means the user wants to do further analysis on
|
| - # the data.
|
| - print('Leaking %s' % self.tempdir)
|
| - else:
|
| - shutil.rmtree(self.tempdir)
|
| -
|
| - def _run(self, cmd):
|
| - if VERBOSE:
|
| - cmd = cmd + ['--verbose'] * 3
|
| - logging.info(cmd)
|
| - proc = subprocess.Popen(
|
| - [sys.executable] + cmd,
|
| - cwd=self.srcdir,
|
| - stdout=subprocess.PIPE,
|
| - stderr=subprocess.STDOUT)
|
| - out = proc.communicate()[0]
|
| - if VERBOSE:
|
| - print '\n-----'
|
| - print out.strip()
|
| - print '-----\n'
|
| - self.assertEqual(0, proc.returncode)
|
| - return out
|
| -
|
| - def test_simple(self):
|
| - # Create a directory with nothing in it and progressively add more stuff.
|
| - isolate = os.path.join(self.srcdir, 'gtest_fake_pass.isolate')
|
| - chromeos_value = int(run_isolated.get_flavor() == 'linux')
|
| - condition = 'OS=="%s" and chromeos==%d' % (run_isolated.get_flavor(),
|
| - chromeos_value)
|
| - with open(isolate, 'w') as f:
|
| - # Write a minimal .isolate file.
|
| - f.write(str({
|
| - 'conditions': [
|
| - [condition, {
|
| - 'variables': {
|
| - 'command': [
|
| - 'run_test_cases.py', 'gtest_fake_pass.py',
|
| - ],
|
| - },
|
| - }],
|
| - ],
|
| - }))
|
| - def _copy(filename):
|
| - shutil.copy(
|
| - os.path.join(BASE_DIR, 'gtest_fake', filename),
|
| - os.path.join(self.srcdir, filename))
|
| - _copy('gtest_fake_base.py')
|
| - _copy('gtest_fake_pass.py')
|
| - shutil.copy(
|
| - os.path.join(GOOGLETEST_DIR, 'run_test_cases.py'),
|
| - os.path.join(self.srcdir, 'run_test_cases.py'))
|
| - # Deploy run_isolated with dependencies as zip into srcdir.
|
| - run_isolated.get_as_zip_package(executable=False).zip_into_file(
|
| - os.path.join(self.srcdir, 'run_isolated.zip'))
|
| -
|
| - logging.debug('1. Create a .isolated file out of the .isolate file.')
|
| - isolated = os.path.join(self.srcdir, 'gtest_fake_pass.isolated')
|
| - out = self._run(
|
| - [
|
| - os.path.join(ROOT_DIR, 'isolate.py'),
|
| - 'check', '-i', isolate, '-s', isolated,
|
| - '-V', 'chromeos', str(chromeos_value),
|
| - ])
|
| - if not VERBOSE:
|
| - self.assertEqual('', out)
|
| -
|
| - logging.debug('2. Run fix_test_cases.py on it.')
|
| - # Give up on looking at stdout.
|
| - cmd = [
|
| - os.path.join(GOOGLETEST_DIR, 'fix_test_cases.py'),
|
| - '-s', isolated,
|
| - '--trace-blacklist', '.*\\.run_test_cases',
|
| - ]
|
| - _ = self._run(cmd)
|
| -
|
| - logging.debug('3. Asserting the content of the .isolated file.')
|
| - with open(isolated) as f:
|
| - actual_isolated = json.load(f)
|
| - gtest_fake_base_py = os.path.join(self.srcdir, 'gtest_fake_base.py')
|
| - gtest_fake_pass_py = os.path.join(self.srcdir, 'gtest_fake_pass.py')
|
| - run_isolated_zip = os.path.join(self.srcdir, 'run_isolated.zip')
|
| - run_test_cases_py = os.path.join(self.srcdir, 'run_test_cases.py')
|
| - algo = hashlib.sha1
|
| - expected_isolated = {
|
| - u'algo': u'sha-1',
|
| - u'command': [u'run_test_cases.py', u'gtest_fake_pass.py'],
|
| - u'files': {
|
| - u'gtest_fake_base.py': {
|
| - u'm': 416,
|
| - u'h': unicode(isolateserver.hash_file(gtest_fake_base_py, algo)),
|
| - u's': os.stat(gtest_fake_base_py).st_size,
|
| - },
|
| - u'gtest_fake_pass.py': {
|
| - u'm': 488,
|
| - u'h': unicode(isolateserver.hash_file(gtest_fake_pass_py, algo)),
|
| - u's': os.stat(gtest_fake_pass_py).st_size,
|
| - },
|
| - u'run_isolated.zip': {
|
| - u'm': 416,
|
| - u'h': unicode(isolateserver.hash_file(run_isolated_zip, algo)),
|
| - u's': os.stat(run_isolated_zip).st_size,
|
| - },
|
| - u'run_test_cases.py': {
|
| - u'm': 488,
|
| - u'h': unicode(isolateserver.hash_file(run_test_cases_py, algo)),
|
| - u's': os.stat(run_test_cases_py).st_size,
|
| - },
|
| - },
|
| - u'os': unicode(run_isolated.get_flavor()),
|
| - u'relative_cwd': u'.',
|
| - u'version': u'1.0',
|
| - }
|
| - if sys.platform == 'win32':
|
| - for value in expected_isolated['files'].itervalues():
|
| - self.assertTrue(value.pop('m'))
|
| - self.assertEqual(expected_isolated, actual_isolated)
|
| -
|
| - # Now verify the .isolate file was updated! (That's the magical part where
|
| - # you say wow!)
|
| - with open(isolate) as f:
|
| - actual = eval(f.read(), {'__builtins__': None}, None)
|
| - expected = {
|
| - 'conditions': [
|
| - [condition, {
|
| - 'variables': {
|
| - 'command': [
|
| - 'run_test_cases.py', 'gtest_fake_pass.py'
|
| - ],
|
| - 'isolate_dependency_tracked': [
|
| - 'gtest_fake_base.py',
|
| - 'gtest_fake_pass.py',
|
| - 'run_isolated.zip',
|
| - 'run_test_cases.py',
|
| - ],
|
| - },
|
| - }],
|
| - ],
|
| - }
|
| - self.assertEqual(expected, actual)
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - VERBOSE = '-v' in sys.argv
|
| - if VERBOSE:
|
| - unittest.TestCase.maxDiff = None
|
| - logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR)
|
| - unittest.main()
|
|
|