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

Side by Side Diff: base/test/launcher/unit_test_launcher.cc

Issue 1027993002: Allow unit tests to force serial execution in the test launcher. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: TestID experiment Created 5 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
« no previous file with comments | « base/test/launcher/test_id.cc ('k') | chrome/chrome_tests.gypi » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/test/launcher/unit_test_launcher.h" 5 #include "base/test/launcher/unit_test_launcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 return true; 550 return true;
551 } 551 }
552 552
553 size_t UnitTestLauncherDelegate::RunTests( 553 size_t UnitTestLauncherDelegate::RunTests(
554 TestLauncher* test_launcher, 554 TestLauncher* test_launcher,
555 const std::vector<std::string>& test_names) { 555 const std::vector<std::string>& test_names) {
556 DCHECK(thread_checker_.CalledOnValidThread()); 556 DCHECK(thread_checker_.CalledOnValidThread());
557 557
558 int launch_flags = use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0; 558 int launch_flags = use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0;
559 559
560 std::vector<std::string> serialized;
560 std::vector<std::string> batch; 561 std::vector<std::string> batch;
561 for (size_t i = 0; i < test_names.size(); i++) { 562 for (const auto& test_name : test_names) {
562 batch.push_back(test_names[i]); 563 if (test_name.find(".SERIALIZE_") != std::string::npos) {
564 serialized.push_back(test_name);
565 continue;
566 }
567 batch.push_back(test_name);
563 568
564 // Use 0 to indicate unlimited batch size. 569 // Use 0 to indicate unlimited batch size.
565 if (batch.size() >= batch_limit_ && batch_limit_ != 0) { 570 if (batch.size() >= batch_limit_ && batch_limit_ != 0) {
566 RunUnitTestsBatch(test_launcher, platform_delegate_, batch, launch_flags); 571 RunUnitTestsBatch(test_launcher, platform_delegate_, batch, launch_flags);
567 batch.clear(); 572 batch.clear();
568 } 573 }
569 } 574 }
570 575
571 RunUnitTestsBatch(test_launcher, platform_delegate_, batch, launch_flags); 576 RunUnitTestsBatch(test_launcher, platform_delegate_, batch, launch_flags);
572 577
578 RunUnitTestsSerially(test_launcher, platform_delegate_, serialized,
579 launch_flags);
580
573 return test_names.size(); 581 return test_names.size();
574 } 582 }
575 583
576 size_t UnitTestLauncherDelegate::RetryTests( 584 size_t UnitTestLauncherDelegate::RetryTests(
577 TestLauncher* test_launcher, 585 TestLauncher* test_launcher,
578 const std::vector<std::string>& test_names) { 586 const std::vector<std::string>& test_names) {
579 MessageLoop::current()->PostTask( 587 MessageLoop::current()->PostTask(
580 FROM_HERE, 588 FROM_HERE,
581 Bind(&RunUnitTestsSerially, 589 Bind(&RunUnitTestsSerially,
582 test_launcher, 590 test_launcher,
583 platform_delegate_, 591 platform_delegate_,
584 test_names, 592 test_names,
585 use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0)); 593 use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0));
586 return test_names.size(); 594 return test_names.size();
587 } 595 }
588 596
589 } // namespace base 597 } // namespace base
OLDNEW
« no previous file with comments | « base/test/launcher/test_id.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698