# Copyright 2017 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. from autotest_lib.client.bin import test from autotest_lib.client.common_lib import error from autotest_lib.client.common_lib.cros import test_webrtc_peer_connection class webrtc_PausePlayPeerConnections(test.test): """Tests many peerconnections randomly paused and played.""" version = 1 def run_once(self, mode = 'functional', element_type='video'): """ Runs the test. @param mode: 'functional' or 'performance' depending on desired mode. @param element_type: the element type to use for feeds, video or audio. """ kwargs = { 'own_script': 'pause-play.js', 'common_script': 'loopback-peerconnection.js', 'bindir': self.bindir, 'tmpdir': self.tmpdir, 'debugdir': self.debugdir, 'num_peer_connections': 10, 'iteration_delay_millis': 20, 'before_start_hook': lambda tab: tab.EvaluateJavaScript( "elementType = '{}'".format(element_type)) } if mode == 'functional': test = test_webrtc_peer_connection.WebRtcPeerConnectionTest( title = 'Pause Play Peerconnections', **kwargs) test.run_test() elif mode == 'performance': test = test_webrtc_peer_connection\ .WebRtcPeerConnectionPerformanceTest( title = 'Pause Play Peerconnections ' + 'Performance test', **kwargs) test.run_test() test.collector.write_metrics(self.output_perf_value) else: raise error.TestError('mode must be "functional" or "performance"')