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

Side by Side Diff: content/public/test/test_launcher.cc

Issue 190663012: Run ContentMain in a browser_test's browser process. This removes duplication of code in the browse… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: cleanup 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 unified diff | Download patch | Annotate | Revision Log
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 "content/public/test/test_launcher.h" 5 #include "content/public/test/test_launcher.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 // that span browser restarts. 53 // that span browser restarts.
54 const char kPreTestPrefix[] = "PRE_"; 54 const char kPreTestPrefix[] = "PRE_";
55 55
56 // Manual tests only run when --run-manual is specified. This allows writing 56 // Manual tests only run when --run-manual is specified. This allows writing
57 // tests that don't run automatically but are still in the same test binary. 57 // tests that don't run automatically but are still in the same test binary.
58 // This is useful so that a team that wants to run a few tests doesn't have to 58 // This is useful so that a team that wants to run a few tests doesn't have to
59 // add a new binary that must be compiled on all builds. 59 // add a new binary that must be compiled on all builds.
60 const char kManualTestPrefix[] = "MANUAL_"; 60 const char kManualTestPrefix[] = "MANUAL_";
61 61
62 TestLauncherDelegate* g_launcher_delegate; 62 TestLauncherDelegate* g_launcher_delegate;
63 ContentMainParams* g_params;
63 64
64 std::string RemoveAnyPrePrefixes(const std::string& test_name) { 65 std::string RemoveAnyPrePrefixes(const std::string& test_name) {
65 std::string result(test_name); 66 std::string result(test_name);
66 ReplaceSubstringsAfterOffset(&result, 0, kPreTestPrefix, std::string()); 67 ReplaceSubstringsAfterOffset(&result, 0, kPreTestPrefix, std::string());
67 return result; 68 return result;
68 } 69 }
69 70
70 void PrintUsage() { 71 void PrintUsage() {
71 fprintf(stdout, 72 fprintf(stdout,
72 "Runs tests using the gtest framework, each batch of tests being\n" 73 "Runs tests using the gtest framework, each batch of tests being\n"
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 if (command_line->HasSwitch(kHelpFlag)) { 470 if (command_line->HasSwitch(kHelpFlag)) {
470 PrintUsage(); 471 PrintUsage();
471 return 0; 472 return 0;
472 } 473 }
473 474
474 if (command_line->HasSwitch(kSingleProcessTestsFlag) || 475 if (command_line->HasSwitch(kSingleProcessTestsFlag) ||
475 (command_line->HasSwitch(switches::kSingleProcess) && 476 (command_line->HasSwitch(switches::kSingleProcess) &&
476 command_line->HasSwitch(base::kGTestFilterFlag)) || 477 command_line->HasSwitch(base::kGTestFilterFlag)) ||
477 command_line->HasSwitch(base::kGTestListTestsFlag) || 478 command_line->HasSwitch(base::kGTestListTestsFlag) ||
478 command_line->HasSwitch(base::kGTestHelpFlag)) { 479 command_line->HasSwitch(base::kGTestHelpFlag)) {
479 #if defined(OS_WIN) 480
480 if (command_line->HasSwitch(kSingleProcessTestsFlag)) { 481 // COPY OF RUNCONTENTMAIN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
481 sandbox::SandboxInterfaceInfo sandbox_info; 482 scoped_ptr<ContentMainDelegate> chrome_main_delegate(
482 InitializeSandboxInfo(&sandbox_info); 483 launcher_delegate->CreateContentMainDelegate());
483 InitializeSandbox(&sandbox_info); 484 ContentMainParams params(chrome_main_delegate.get());
484 } 485
485 #endif 486 #if defined(OS_WIN)
487 sandbox::SandboxInterfaceInfo sandbox_info = {0};
488 InitializeSandboxInfo(&sandbox_info);
489
490 params.instance = GetModuleHandle(NULL);
491 params.sandbox_info = &sandbox_info;
492 #elif defined(OS_LINUX)
493 params.argc = argc;
494 params.argv = const_cast<const char**>(argv);
495 #endif // defined(OS_WIN)
496 // END COPY!!!!!!!!!!!!!!!!!
497
498 g_params = &params;
499
500
486 return launcher_delegate->RunTestSuite(argc, argv); 501 return launcher_delegate->RunTestSuite(argc, argv);
487 } 502 }
488 503
489 #if defined(OS_WIN) || defined(OS_LINUX) 504 #if defined(OS_WIN) || defined(OS_LINUX)
490 if (ShouldRunContentMain()) 505 if (ShouldRunContentMain())
491 return RunContentMain(argc, argv, launcher_delegate); 506 return RunContentMain(argc, argv, launcher_delegate);
492 #endif 507 #endif
493 508
494 base::AtExitManager at_exit; 509 base::AtExitManager at_exit;
495 testing::InitGoogleTest(&argc, argv); 510 testing::InitGoogleTest(&argc, argv);
(...skipping 15 matching lines...) Expand all
511 WrapperTestLauncherDelegate delegate(launcher_delegate); 526 WrapperTestLauncherDelegate delegate(launcher_delegate);
512 base::TestLauncher launcher(&delegate, default_jobs); 527 base::TestLauncher launcher(&delegate, default_jobs);
513 bool success = launcher.Run(argc, argv); 528 bool success = launcher.Run(argc, argv);
514 return (success ? 0 : 1); 529 return (success ? 0 : 1);
515 } 530 }
516 531
517 TestLauncherDelegate* GetCurrentTestLauncherDelegate() { 532 TestLauncherDelegate* GetCurrentTestLauncherDelegate() {
518 return g_launcher_delegate; 533 return g_launcher_delegate;
519 } 534 }
520 535
536 ContentMainParams* GetContentMainParams() {
537 return g_params;
538 }
539
521 } // namespace content 540 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698