Index: tools/telemetry/telemetry/internal/platform/profiler/vtune_profiler_unittest.py |
diff --git a/tools/telemetry/telemetry/internal/platform/profiler/vtune_profiler_unittest.py b/tools/telemetry/telemetry/internal/platform/profiler/vtune_profiler_unittest.py |
deleted file mode 100644 |
index d763d7720417c46b3d81981e162d30a351cf2ee5..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/internal/platform/profiler/vtune_profiler_unittest.py |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-# Copyright 2014 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 sys |
-import unittest |
- |
-from telemetry import decorators |
-from telemetry.internal.platform.profiler import vtune_profiler |
-from telemetry.testing import options_for_unittests |
-from telemetry.testing import simple_mock |
-from telemetry.testing import tab_test_case |
- |
- |
-class MockPopen(object): |
- def __init__(self, returncode, stdout=None, stderr=None): |
- self.returncode = returncode |
- self.stdout = stdout |
- self.stderr = stderr |
- |
- def communicate(self): |
- return (self.stdout, self.stderr) |
- |
- def wait(self): |
- return self.returncode |
- |
- |
-class MockSubprocess(object): |
- def __init__(self): |
- self.PIPE = simple_mock.MockObject() |
- self.STDOUT = simple_mock.MockObject() |
- self._num_collect_calls = 0 |
- self._num_stop_calls = 0 |
- |
- @property |
- def num_collect_calls(self): |
- return self._num_collect_calls |
- |
- @property |
- def num_stop_calls(self): |
- return self._num_stop_calls |
- |
- def Popen(self, cmd, **_): |
- self._AnalyzeCommand(cmd) |
- return MockPopen(0) |
- |
- def call(self, cmd): |
- self._AnalyzeCommand(cmd) |
- |
- def _AnalyzeCommand(self, cmd): |
- if MockSubprocess._IsCollectCommand(cmd): |
- self._num_collect_calls += 1 |
- elif MockSubprocess._IsStopCommand(cmd): |
- self._num_stop_calls += 1 |
- |
- @staticmethod |
- def _IsCollectCommand(cmd): |
- return '-collect' in cmd |
- |
- @staticmethod |
- def _IsStopCommand(cmd): |
- try: |
- cmd_idx = cmd.index('-command') + 1 |
- return cmd_idx < len(cmd) and cmd[cmd_idx] == 'stop' |
- except ValueError: |
- return False |
- |
- |
-class TestVTuneProfiler(unittest.TestCase): |
- |
- def testVTuneProfilerIsSupported(self): |
- options = options_for_unittests.GetCopy() |
- |
- mock_subprocess = simple_mock.MockObject() |
- mock_subprocess.ExpectCall( |
- 'Popen').WithArgs(simple_mock.DONT_CARE).WillReturn(MockPopen(0)) |
- mock_subprocess.SetAttribute('PIPE', simple_mock.MockObject()) |
- mock_subprocess.SetAttribute('STDOUT', simple_mock.MockObject()) |
- |
- real_subprocess = vtune_profiler.subprocess |
- vtune_profiler.subprocess = mock_subprocess |
- |
- if options.browser_type.startswith('android'): |
- # On Android we're querying if 'su' is available. |
- mock_subprocess.ExpectCall('Popen').WithArgs( |
- simple_mock.DONT_CARE).WillReturn(MockPopen(0, 'su', None)) |
- |
- try: |
- self.assertTrue( |
- vtune_profiler.VTuneProfiler.is_supported(options.browser_type) or |
- sys.platform != 'linux2' or |
- options.browser_type.startswith('cros')) |
- finally: |
- vtune_profiler.subprocess = real_subprocess |
- |
- |
-class TestVTuneProfilerTabTestCase(tab_test_case.TabTestCase): |
- |
- # This test is only meant to be run if VTune is installed locally. Please |
- # run it locally if you are modifying related code, but it's disabled on the |
- # bots because they don't have VTune. See crbug.com/437085 |
- @decorators.Disabled('all') |
- def testVTuneProfiler(self): |
- mock_subprocess = MockSubprocess() |
- real_subprocess = vtune_profiler.subprocess |
- vtune_profiler.subprocess = mock_subprocess |
- |
- try: |
- # pylint: disable=protected-access |
- profiler = vtune_profiler.VTuneProfiler(self._browser._browser_backend, |
- self._browser._platform_backend, |
- 'tmp', |
- {}) |
- profiler.CollectProfile() |
- self.assertEqual(mock_subprocess.num_collect_calls, |
- mock_subprocess.num_stop_calls) |
- finally: |
- vtune_profiler.subprocess = real_subprocess |