Index: chrome/test/functional/media/media_seek_perf.py |
=================================================================== |
--- chrome/test/functional/media/media_seek_perf.py (revision 261231) |
+++ chrome/test/functional/media/media_seek_perf.py (working copy) |
@@ -1,117 +0,0 @@ |
-#!/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. |
- |
-"""Seek performance testing for <video>. |
- |
-Calculates the short and long seek times for different video formats on |
-different network constraints. |
-""" |
- |
-import logging |
-import os |
-import posixpath |
- |
-import pyauto_media |
-import pyauto_utils |
- |
-import cns_test_base |
-import worker_thread |
- |
-# Number of threads to use during testing. |
-_TEST_THREADS = 3 |
- |
-# HTML test path; relative to src/chrome/test/data. |
-_TEST_HTML_PATH = os.path.join('media', 'html', 'media_seek.html') |
- |
-# The media files used for testing. |
-# Path under CNS root folder (pyauto_private/media). |
-_TEST_VIDEOS = [posixpath.join('dartmoor', name) for name in |
- ['dartmoor2.mp3', 'dartmoor2.wav']] |
- |
-_TEST_VIDEOS.extend([posixpath.join('crowd', name) for name in |
- ['crowd1080.webm', 'crowd1080.ogv', 'crowd1080.mp4', |
- 'crowd360.webm', 'crowd360.ogv', 'crowd360.mp4']]) |
- |
-# Constraints to run tests on. |
-_TESTS_TO_RUN = [ |
- cns_test_base.Wifi, |
- cns_test_base.NoConstraints] |
- |
- |
-class SeekWorkerThread(worker_thread.WorkerThread): |
- """Worker thread. Runs a test for each task in the queue.""" |
- |
- def RunTask(self, unique_url, task): |
- """Runs the specific task on the url given. |
- |
- It is assumed that a tab with the unique_url is already loaded. |
- Args: |
- unique_url: A unique identifier of the test page. |
- task: A (series_name, settings, file_name) tuple to run the test on. |
- """ |
- series_name, settings, file_name = task |
- |
- video_url = cns_test_base.GetFileURL( |
- file_name, bandwidth=settings[0], latency=settings[1], |
- loss=settings[2]) |
- |
- # Start the test! |
- self.CallJavascriptFunc('startTest', [video_url], unique_url) |
- |
- logging.debug('Running perf test for %s.', video_url) |
- # Time out is dependent on (seeking time * iterations). For 3 iterations |
- # per seek we get total of 18 seeks per test. We expect buffered and |
- # cached seeks to be fast. Through experimentation an average of 10 secs |
- # per seek was found to be adequate. |
- if not self.WaitUntil(self.GetDOMValue, args=['endTest', unique_url], |
- retry_sleep=5, timeout=300, debug=False): |
- error_msg = 'Seek tests timed out.' |
- else: |
- error_msg = self.GetDOMValue('errorMsg', unique_url) |
- |
- cached_states = self.GetDOMValue( |
- "Object.keys(CachedState).join(',')", unique_url).split(',') |
- seek_test_cases = self.GetDOMValue( |
- "Object.keys(SeekTestCase).join(',')", unique_url).split(',') |
- |
- graph_name = series_name + '_' + os.path.basename(file_name) |
- for state in cached_states: |
- for seek_case in seek_test_cases: |
- values = self.GetDOMValue( |
- "seekRecords[CachedState.%s][SeekTestCase.%s].join(',')" % |
- (state, seek_case), unique_url) |
- if values: |
- results = [float(value) for value in values.split(',')] |
- else: |
- results = [] |
- pyauto_utils.PrintPerfResult('seek_%s_%s' % (state.lower(), |
- seek_case.lower()), graph_name, |
- results, 'ms') |
- |
- if error_msg: |
- logging.error('Error while running %s: %s.', graph_name, error_msg) |
- return False |
- else: |
- return True |
- |
- |
-class MediaSeekPerfTest(cns_test_base.CNSTestBase): |
- """PyAuto test container. See file doc string for more information.""" |
- |
- def __init__(self, *args, **kwargs): |
- """Initialize the CNSTestBase with socket_timeout = 60 secs.""" |
- cns_test_base.CNSTestBase.__init__(self, socket_timeout='60', |
- *args, **kwargs) |
- |
- def testMediaSeekPerformance(self): |
- """Launches HTML test which plays each video and records seek stats.""" |
- tasks = cns_test_base.CreateCNSPerfTasks(_TESTS_TO_RUN, _TEST_VIDEOS) |
- if worker_thread.RunWorkerThreads(self, SeekWorkerThread, tasks, |
- _TEST_THREADS, _TEST_HTML_PATH): |
- self.fail('Some tests failed to run as expected.') |
- |
- |
-if __name__ == '__main__': |
- pyauto_media.Main() |