Index: chrome/test/functional/media/audio_playback_perf.py |
=================================================================== |
--- chrome/test/functional/media/audio_playback_perf.py (revision 261231) |
+++ chrome/test/functional/media/audio_playback_perf.py (working copy) |
@@ -1,103 +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. |
- |
-"""Audio basic playback test. Verifies basic audio output. |
- |
-The tests plays an audio file and records its output while playing. It uses |
-SOX tool to eliminate silence from begining and end of audio recorded. Then it |
-uses PESQ tool to verify the recorded audio against expected file. |
- |
-The output of PESQ is a pair of numbers between 0 and 5 describing how close the |
-recorded audio is to its reference file. |
- |
-The output of this test are the PESQ values that are graphed, example: |
-RESULT audio_pesq: ref= 4.498 score |
-RESULT audio_pesq: actual= 4.547 score |
-""" |
- |
-import logging |
-import os |
-import sys |
-import tempfile |
- |
-import audio_tools |
-import pyauto_media |
-import pyauto |
-import pyauto_utils |
- |
- |
-_TEST_HTML_PATH = pyauto.PyUITest.GetFileURLForDataPath('media', 'html', |
- 'audio_record.html') |
-_MEDIA_PATH = os.path.abspath(os.path.join(pyauto.PyUITest.DataDir(), |
- 'pyauto_private', 'media')) |
- |
-# The media file to play. |
-_TEST_AUDIO = pyauto.PyUITest.GetFileURLForPath(_MEDIA_PATH, 'dance2_10sec.wav') |
-# The recording duration should be at least as the media duration. We use 5 |
-# extra seconds of record in this test. |
-_RECORD_DURATION = 15 |
- |
-# Due to different noise introduced by audio recording tools on windows and |
-# linux, we require an expected audio file per platform. |
-if 'win32' in sys.platform: |
- _TEST_EXPECTED_AUDIO = os.path.join(_MEDIA_PATH, 'audio_record_win.wav') |
-else: |
- _TEST_EXPECTED_AUDIO = os.path.join(_MEDIA_PATH, 'audio_record_lin.wav') |
- |
- |
-def GetTempFilename(): |
- """Returns an absolute path to an empty temp file.""" |
- f, path = tempfile.mkstemp(suffix='_actual.wav') |
- os.close(f) |
- return path |
- |
- |
-class AudioRecordPerfTest(pyauto.PyUITest): |
- """PyAuto test container. See file doc string for more information.""" |
- |
- def testBasicAudioPlaybackRecord(self): |
- """Plays an audio file and verifies its output against expected.""" |
- # The 2 temp files that will be potentially used in the test. |
- temp_file = None |
- file_no_silence = None |
- # Rebase test expectation file is REBASE=1 env variable is set. |
- rebase = 'REBASE' in os.environ |
- |
- try: |
- temp_file = GetTempFilename() |
- record_thread = audio_tools.AudioRecorderThread(_RECORD_DURATION, |
- temp_file) |
- record_thread.start() |
- self.NavigateToURL(_TEST_HTML_PATH) |
- self.assertTrue(self.ExecuteJavascript("startTest('%s');" % _TEST_AUDIO)) |
- record_thread.join() |
- |
- if record_thread.error: |
- self.fail(record_thread.error) |
- file_no_silence = _TEST_EXPECTED_AUDIO if rebase else GetTempFilename() |
- audio_tools.RemoveSilence(temp_file, file_no_silence) |
- |
- # Exit if we just want to rebase expected output. |
- if rebase: |
- return |
- |
- pesq_values = audio_tools.RunPESQ(_TEST_EXPECTED_AUDIO, file_no_silence) |
- if not pesq_values: |
- self.fail('Test failed to get pesq results.') |
- pyauto_utils.PrintPerfResult('audio_pesq', 'ref', pesq_values[0], 'score') |
- pyauto_utils.PrintPerfResult('audio_pesq', 'actual', pesq_values[1], |
- 'score') |
- except: |
- logging.error('Test failed: %s', self.GetDOMValue('error')) |
- finally: |
- # Delete the temporary files used by the test. |
- if temp_file: |
- os.remove(temp_file) |
- if not rebase and file_no_silence: |
- os.remove(file_no_silence) |
- |
- |
-if __name__ == '__main__': |
- pyauto_media.Main() |