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

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

Issue 10928114: Allow running browser tests each in single-process mode. This is useful for Android team, which wan… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 3 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 | no next file » | 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 "content/public/test/test_launcher.h" 5 #include "content/public/test/test_launcher.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 g_launcher_delegate = launcher_delegate; 690 g_launcher_delegate = launcher_delegate;
691 691
692 CommandLine::Init(argc, argv); 692 CommandLine::Init(argc, argv);
693 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 693 const CommandLine* command_line = CommandLine::ForCurrentProcess();
694 694
695 if (command_line->HasSwitch(kHelpFlag)) { 695 if (command_line->HasSwitch(kHelpFlag)) {
696 PrintUsage(); 696 PrintUsage();
697 return 0; 697 return 0;
698 } 698 }
699 699
700 // TODO(pkasting): This "single_process vs. single-process" design is
701 // terrible UI. Instead, there should be some sort of signal flag on the
702 // command line, with all subsequent arguments passed through to the
703 // underlying browser.
704 if (command_line->HasSwitch(kSingleProcessTestsFlag) || 700 if (command_line->HasSwitch(kSingleProcessTestsFlag) ||
705 command_line->HasSwitch(kSingleProcessTestsAndChromeFlag) || 701 (command_line->HasSwitch(kSingleProcessTestsAndChromeFlag) &&
702 command_line->HasSwitch(kGTestFilterFlag)) ||
706 command_line->HasSwitch(kGTestListTestsFlag) || 703 command_line->HasSwitch(kGTestListTestsFlag) ||
707 command_line->HasSwitch(kGTestHelpFlag)) { 704 command_line->HasSwitch(kGTestHelpFlag)) {
708 #if defined(OS_WIN) 705 #if defined(OS_WIN)
709 if (command_line->HasSwitch(kSingleProcessTestsFlag)) { 706 if (command_line->HasSwitch(kSingleProcessTestsFlag)) {
710 sandbox::SandboxInterfaceInfo sandbox_info; 707 sandbox::SandboxInterfaceInfo sandbox_info;
711 content::InitializeSandboxInfo(&sandbox_info); 708 content::InitializeSandboxInfo(&sandbox_info);
712 content::InitializeSandbox(&sandbox_info); 709 content::InitializeSandbox(&sandbox_info);
713 } 710 }
714 #endif 711 #endif
715 return launcher_delegate->RunTestSuite(argc, argv); 712 return launcher_delegate->RunTestSuite(argc, argv);
716 } 713 }
717 714
718 if (ShouldRunContentMain()) 715 if (ShouldRunContentMain())
719 return RunContentMain(argc, argv, launcher_delegate); 716 return RunContentMain(argc, argv, launcher_delegate);
720 717
721 base::AtExitManager at_exit; 718 base::AtExitManager at_exit;
722 719
723 int32 total_shards; 720 int32 total_shards;
724 int32 shard_index; 721 int32 shard_index;
725 bool should_shard = ShouldShard(&total_shards, &shard_index); 722 bool should_shard = ShouldShard(&total_shards, &shard_index);
726 723
727 fprintf(stdout, 724 fprintf(stdout,
728 "Starting tests...\n" 725 "Starting tests...\n"
729 "IMPORTANT DEBUGGING NOTE: each test is run inside its own process.\n" 726 "IMPORTANT DEBUGGING NOTE: each test is run inside its own process.\n"
730 "For debugging a test inside a debugger, use the\n" 727 "For debugging a test inside a debugger, use the\n"
731 "--gtest_filter=<your_test_name> flag along with either\n" 728 "--gtest_filter=<your_test_name> flag along with either\n"
732 "--single_process (to run all tests in one launcher/browser process) or\n" 729 "--single_process (to run the test in one launcher/browser process) or\n"
733 "--single-process (to do the above, and also run Chrome in single-\n" 730 "--single-process (to do the above, and also run Chrome in single-"
734 "process mode).\n"); 731 "process mode).\n");
735 732
736 testing::InitGoogleTest(&argc, argv); 733 testing::InitGoogleTest(&argc, argv);
737 TestTimeouts::Initialize(); 734 TestTimeouts::Initialize();
738 int exit_code = 0; 735 int exit_code = 0;
739 736
740 std::string empty_test = launcher_delegate->GetEmptyTestName(); 737 std::string empty_test = launcher_delegate->GetEmptyTestName();
741 if (!empty_test.empty()) { 738 if (!empty_test.empty()) {
742 // Make sure the entire browser code is loaded into memory. Reading it 739 // Make sure the entire browser code is loaded into memory. Reading it
743 // from disk may be slow on a busy bot, and can easily exceed the default 740 // from disk may be slow on a busy bot, and can easily exceed the default
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 cycles--; 776 cycles--;
780 } 777 }
781 return exit_code; 778 return exit_code;
782 } 779 }
783 780
784 TestLauncherDelegate* GetCurrentTestLauncherDelegate() { 781 TestLauncherDelegate* GetCurrentTestLauncherDelegate() {
785 return g_launcher_delegate; 782 return g_launcher_delegate;
786 } 783 }
787 784
788 } // namespace test_launcher 785 } // namespace test_launcher
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698