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

Side by Side Diff: content/browser/media/webrtc_browsertest.cc

Issue 240403003: Adding lenient mode to WebRTC audio tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Passing parameter to test instead of global. Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/test/data/media/peerconnection-call.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/strings/stringprintf.h" 6 #include "base/strings/stringprintf.h"
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "content/browser/media/webrtc_internals.h" 8 #include "content/browser/media/webrtc_internals.h"
9 #include "content/browser/web_contents/web_contents_impl.h" 9 #include "content/browser/web_contents/web_contents_impl.h"
10 #include "content/public/common/content_switches.h" 10 #include "content/public/common/content_switches.h"
11 #include "content/public/test/browser_test_utils.h" 11 #include "content/public/test/browser_test_utils.h"
12 #include "content/public/test/content_browser_test_utils.h" 12 #include "content/public/test/content_browser_test_utils.h"
13 #include "content/public/test/test_utils.h" 13 #include "content/public/test/test_utils.h"
14 #include "content/shell/browser/shell.h" 14 #include "content/shell/browser/shell.h"
15 #include "content/test/webrtc_content_browsertest_base.h" 15 #include "content/test/webrtc_content_browsertest_base.h"
16 #include "media/audio/audio_manager.h" 16 #include "media/audio/audio_manager.h"
17 #include "net/test/embedded_test_server/embedded_test_server.h" 17 #include "net/test/embedded_test_server/embedded_test_server.h"
18 18
19 #if defined(OS_WIN) 19 #if defined(OS_WIN)
20 #include "base/win/windows_version.h" 20 #include "base/win/windows_version.h"
21 #endif 21 #endif
22 22
23 #if defined (OS_ANDROID) || defined(THREAD_SANITIZER)
24 // Just do the bare minimum of audio checking on Android and under TSAN since
25 // it's a bit sensitive to device performance.
26 static const char kUseLenientAudioChecking[] = "true";
27 #else
28 static const char kUseLenientAudioChecking[] = "false";
29 #endif
30
23 namespace content { 31 namespace content {
24 32
25 class WebRtcBrowserTest : public WebRtcContentBrowserTest, 33 class WebRtcBrowserTest : public WebRtcContentBrowserTest,
26 public testing::WithParamInterface<bool> { 34 public testing::WithParamInterface<bool> {
27 public: 35 public:
28 WebRtcBrowserTest() {} 36 WebRtcBrowserTest() {}
29 virtual ~WebRtcBrowserTest() {} 37 virtual ~WebRtcBrowserTest() {}
30 38
31 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 39 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
32 WebRtcContentBrowserTest::SetUpCommandLine(command_line); 40 WebRtcContentBrowserTest::SetUpCommandLine(command_line);
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 // such bots (see crbug.com/326338). 306 // such bots (see crbug.com/326338).
299 LOG(INFO) << "Missing output devices: skipping test..."; 307 LOG(INFO) << "Missing output devices: skipping test...";
300 return; 308 return;
301 } 309 }
302 310
303 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( 311 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch(
304 switches::kUseFakeDeviceForMediaStream)) 312 switches::kUseFakeDeviceForMediaStream))
305 << "Must run with fake devices since the test will explicitly look " 313 << "Must run with fake devices since the test will explicitly look "
306 << "for the fake device signal."; 314 << "for the fake device signal.";
307 315
308 MakeTypicalPeerConnectionCall("callAndEnsureAudioIsPlaying();"); 316 MakeTypicalPeerConnectionCall(base::StringPrintf(
317 "callAndEnsureAudioIsPlaying(%s);", kUseLenientAudioChecking));
309 } 318 }
310 319
311 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest, 320 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest,
312 EstablishAudioVideoCallAndVerifyMutingWorks) { 321 EstablishAudioVideoCallAndVerifyMutingWorks) {
313 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { 322 if (!media::AudioManager::Get()->HasAudioOutputDevices()) {
314 // Bots with no output devices will force the audio code into a different 323 // See comment on EstablishAudioVideoCallAndMeasureOutputLevel.
315 // path where it doesn't manage to set either the low or high latency path.
316 // This test will compute useless values in that case, so skip running on
317 // such bots (see crbug.com/326338).
318 LOG(INFO) << "Missing output devices: skipping test..."; 324 LOG(INFO) << "Missing output devices: skipping test...";
319 return; 325 return;
320 } 326 }
321 327
322 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( 328 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch(
323 switches::kUseFakeDeviceForMediaStream)) 329 switches::kUseFakeDeviceForMediaStream))
324 << "Must run with fake devices since the test will explicitly look " 330 << "Must run with fake devices since the test will explicitly look "
325 << "for the fake device signal."; 331 << "for the fake device signal.";
326 332
327 MakeTypicalPeerConnectionCall("callAndEnsureAudioTrackMutingWorks();"); 333 MakeTypicalPeerConnectionCall(base::StringPrintf(
334 "callAndEnsureAudioTrackMutingWorks(%s);", kUseLenientAudioChecking));
328 } 335 }
329 336
330 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest, 337 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest,
331 EstablishAudioVideoCallAndVerifyUnmutingWorks) { 338 EstablishAudioVideoCallAndVerifyUnmutingWorks) {
332 if (!media::AudioManager::Get()->HasAudioOutputDevices()) { 339 if (!media::AudioManager::Get()->HasAudioOutputDevices()) {
333 // See comment on EstablishAudioVideoCallAndVerifyMutingWorks. 340 // See comment on EstablishAudioVideoCallAndMeasureOutputLevel.
334 LOG(INFO) << "Missing output devices: skipping test..."; 341 LOG(INFO) << "Missing output devices: skipping test...";
335 return; 342 return;
336 } 343 }
337 344
338 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( 345 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch(
339 switches::kUseFakeDeviceForMediaStream)) 346 switches::kUseFakeDeviceForMediaStream))
340 << "Must run with fake devices since the test will explicitly look " 347 << "Must run with fake devices since the test will explicitly look "
341 << "for the fake device signal."; 348 << "for the fake device signal.";
342 349
343 MakeTypicalPeerConnectionCall("callAndEnsureAudioTrackUnmutingWorks();"); 350 MakeTypicalPeerConnectionCall(base::StringPrintf(
351 "callAndEnsureAudioTrackUnmutingWorks(%s);", kUseLenientAudioChecking));
344 } 352 }
345 353
346 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest, CallAndVerifyVideoMutingWorks) { 354 IN_PROC_BROWSER_TEST_P(WebRtcBrowserTest, CallAndVerifyVideoMutingWorks) {
347 MakeTypicalPeerConnectionCall("callAndEnsureVideoTrackMutingWorks();"); 355 MakeTypicalPeerConnectionCall("callAndEnsureVideoTrackMutingWorks();");
348 } 356 }
349 357
350 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY) 358 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
351 // Timing out on ARM linux bot: http://crbug.com/238490 359 // Timing out on ARM linux bot: http://crbug.com/238490
352 #define MAYBE_CallWithAecDump DISABLED_CallWithAecDump 360 #define MAYBE_CallWithAecDump DISABLED_CallWithAecDump
353 #else 361 #else
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 425
418 EXPECT_TRUE(base::PathExists(dump_file)); 426 EXPECT_TRUE(base::PathExists(dump_file));
419 int64 file_size = 0; 427 int64 file_size = 0;
420 EXPECT_TRUE(base::GetFileSize(dump_file, &file_size)); 428 EXPECT_TRUE(base::GetFileSize(dump_file, &file_size));
421 EXPECT_EQ(0, file_size); 429 EXPECT_EQ(0, file_size);
422 430
423 base::DeleteFile(dump_file, false); 431 base::DeleteFile(dump_file, false);
424 } 432 }
425 433
426 } // namespace content 434 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/test/data/media/peerconnection-call.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698