Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6121)

Unified Diff: chrome/test/functional/memory.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/functional/media/worker_thread.py ('k') | chrome/test/functional/multiprofile.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/memory.py
===================================================================
--- chrome/test/functional/memory.py (revision 261231)
+++ chrome/test/functional/memory.py (working copy)
@@ -1,134 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 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 sys
-import time
-
-import pyauto_functional # Must be imported before pyauto
-import pyauto
-import test_utils
-
-
-class MemoryTest(pyauto.PyUITest):
- """Tests for memory usage of Chrome-related processes.
-
- These tests are meant to be used manually, not as part of the continuous
- test cycle. This is because each test starts up and periodically
- measures/records the memory usage of a relevant Chrome process, doing so
- repeatedly until the test is manually killed. Currently, this script only
- works in Linux and ChromeOS, as it uses a Linux shell command to query the
- system for process memory usage info (test_utils.GetMemoryUsageOfProcess()).
-
- The tests in this suite produce the following output files (relative to the
- current working directory):
-
- testTabRendererProcessMemoryUsage: 'renderer_process_mem.txt'
- testExtensionProcessMemoryUsage: 'extension_process_mem.txt'
- """
-
- # Constants for all tests in this suite.
- NUM_SECONDS_BETWEEN_MEASUREMENTS = 10
- MEASUREMENT_LOG_MESSAGE_TEMPLATE = '[%s] %.2f MB (pid: %d)'
- LOG_TO_OUTPUT_FILE = True
-
- # Constants for testTabRendererProcessMemoryUsage.
- RENDERER_PROCESS_URL = 'http://chrome.angrybirds.com'
- RENDERER_PROCESS_OUTPUT_FILE = 'renderer_process_mem.txt'
-
- # Constants for testExtensionProcessMemoryUsage.
- EXTENSION_LOCATION = os.path.abspath(os.path.join(
- pyauto.PyUITest.DataDir(), 'extensions', 'google_talk.crx'))
- EXTENSION_PROCESS_NAME = 'Google Talk'
- EXTENSION_PROCESS_OUTPUT_FILE = 'extension_process_mem.txt'
-
- def _GetPidOfExtensionProcessByName(self, name):
- """Identifies the process ID of an extension process, given its name.
-
- Args:
- name: The string name of an extension process, as returned by the function
- GetBrowserInfo().
-
- Returns:
- The integer process identifier (PID) for the specified process, or
- None if the PID cannot be identified.
- """
- info = self.GetBrowserInfo()['extension_views']
- pid = [x['pid'] for x in info if x['name'] == '%s' % name]
- if pid:
- return pid[0]
- return None
-
- def _LogMessage(self, log_file, msg):
- """Logs a message to the screen, and to a log file if necessary.
-
- Args:
- log_file: The string name of a log file to which to write.
- msg: The message to log.
- """
- print msg
- sys.stdout.flush()
- if self.LOG_TO_OUTPUT_FILE:
- print >>open(log_file, 'a'), msg
-
- def testTabRendererProcessMemoryUsage(self):
- """Test the memory usage of the renderer process for a tab.
-
- This test periodically queries the system for the current memory usage
- of a tab's renderer process. The test will take measurements forever; you
- must manually kill the test to terminate it.
- """
- if (self.LOG_TO_OUTPUT_FILE and
- os.path.exists(self.RENDERER_PROCESS_OUTPUT_FILE)):
- os.remove(self.RENDERER_PROCESS_OUTPUT_FILE)
- self.NavigateToURL(self.RENDERER_PROCESS_URL)
- self._LogMessage(
- self.RENDERER_PROCESS_OUTPUT_FILE,
- 'Memory usage for renderer process of a tab navigated to: "%s"' % (
- self.RENDERER_PROCESS_URL))
-
- # A user must manually kill this test to terminate the following loop.
- while True:
- pid = self.GetBrowserInfo()['windows'][0]['tabs'][0]['renderer_pid']
- usage = test_utils.GetMemoryUsageOfProcess(pid)
- current_time = time.asctime(time.localtime(time.time()))
- self._LogMessage(
- self.RENDERER_PROCESS_OUTPUT_FILE,
- self.MEASUREMENT_LOG_MESSAGE_TEMPLATE % (current_time, usage, pid))
- time.sleep(self.NUM_SECONDS_BETWEEN_MEASUREMENTS)
-
- def testExtensionProcessMemoryUsage(self):
- """Test the memory usage of an extension process.
-
- This test periodically queries the system for the current memory usage
- of an extension process. The test will take measurements forever; you
- must manually kill the test to terminate it.
- """
- if (self.LOG_TO_OUTPUT_FILE and
- os.path.exists(self.EXTENSION_PROCESS_OUTPUT_FILE)):
- os.remove(self.EXTENSION_PROCESS_OUTPUT_FILE)
- self.InstallExtension(self.EXTENSION_LOCATION)
- # The PID is 0 until the extension has a chance to start up.
- self.WaitUntil(
- lambda: self._GetPidOfExtensionProcessByName(
- self.EXTENSION_PROCESS_NAME) not in [0, None])
- self._LogMessage(
- self.EXTENSION_PROCESS_OUTPUT_FILE,
- 'Memory usage for extension process with name: "%s"' % (
- self.EXTENSION_PROCESS_NAME))
-
- # A user must manually kill this test to terminate the following loop.
- while True:
- pid = self._GetPidOfExtensionProcessByName(self.EXTENSION_PROCESS_NAME)
- usage = test_utils.GetMemoryUsageOfProcess(pid)
- current_time = time.asctime(time.localtime(time.time()))
- self._LogMessage(
- self.EXTENSION_PROCESS_OUTPUT_FILE,
- self.MEASUREMENT_LOG_MESSAGE_TEMPLATE % (current_time, usage, pid))
- time.sleep(self.NUM_SECONDS_BETWEEN_MEASUREMENTS)
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/media/worker_thread.py ('k') | chrome/test/functional/multiprofile.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698