0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 00:56:44 +01:00

SERVER-46437: Create baseline build variant for single task generated tasks

This commit is contained in:
David Bradford 2020-04-09 14:56:13 -04:00 committed by Evergreen Agent
parent e5dc42c040
commit 024219cb5b
3 changed files with 66 additions and 3 deletions

View File

@ -857,7 +857,8 @@ class GenerateSubSuites(object):
LOGGER.debug("Splitting tasks based on fallback",
fallback=self.config_options.fallback_num_sub_suites)
self.test_list = self.list_tests()
num_suites = min(self.config_options.fallback_num_sub_suites, len(self.test_list))
num_suites = min(self.config_options.fallback_num_sub_suites, len(self.test_list),
self.config_options.max_sub_suites)
suites = [Suite(self.config_options.suite) for _ in range(num_suites)]
for idx, test_file in enumerate(self.test_list):
suites[idx % num_suites].add_test(test_file, 0)

View File

@ -78,6 +78,7 @@ class TestAcceptance(unittest.TestCase):
"project": "mongodb-mongo-master",
"task_id": "task314",
"task_name": "some_task_gen",
"max_sub_suites": 100,
}
@staticmethod
@ -811,11 +812,12 @@ class EvergreenConfigGeneratorTest(unittest.TestCase):
class GenerateSubSuitesTest(unittest.TestCase):
@staticmethod
def get_mock_options(n_fallback=2):
def get_mock_options(n_fallback=2, max_sub_suites=100):
options = MagicMock()
options.target_resmoke_time = 10
options.fallback_num_sub_suites = n_fallback
options.max_tests_per_suite = None
options.max_sub_suites = max_sub_suites
return options
@staticmethod
@ -861,6 +863,24 @@ class GenerateSubSuitesTest(unittest.TestCase):
self.assertEqual(n_tests, len(gen_sub_suites.test_list))
def test_max_sub_suites_overrides_fallback(self):
n_tests = 100
n_fallback = 5
max_sub_suites = 1
evg = mock_test_stats_unavailable(MagicMock())
config_options = self.get_mock_options(n_fallback=n_fallback, max_sub_suites=max_sub_suites)
gen_sub_suites = under_test.GenerateSubSuites(evg, config_options)
gen_sub_suites.list_tests = MagicMock(return_value=self.get_test_list(n_tests))
suites = gen_sub_suites.calculate_suites(_DATE, _DATE)
self.assertEqual(max_sub_suites, len(suites))
for suite in suites:
self.assertEqual(n_tests, len(suite.tests))
self.assertEqual(n_tests, len(gen_sub_suites.test_list))
def test_calculate_suites_more_fallback_suites_than_tests(self):
n_tests = 5
n_fallback = 10

View File

@ -9990,7 +9990,7 @@ buildvariants:
- enterprise
run_on:
- rhel62-small
expansions:
expansions: &enterprise-rhel-62-64-bit-expansions
additional_targets: archive-mongocryptd archive-mongocryptd-debug
push_path: linux
push_bucket: downloads.10gen.com
@ -10459,6 +10459,48 @@ buildvariants:
- name: snmp
- name: .updatefuzzer
# The following build variant is meant to provide a baseline to measure how much overhead we
# are spending when we split tasks into multiple sub-tasks.
- name: enterprise-rhel-62-64-bit-single-task-baseline
display_name: "Enterprise RHEL 6.2 (Single Task Baseline)"
batchtime: 10080 # 1 week.
modules:
- enterprise
run_on:
- rhel62-small
expansions:
<<: *enterprise-rhel-62-64-bit-expansions
max_sub_suites: 1 # Only generate 1 sub-suite per task.
tasks:
- name: compile_all_run_unittests_TG
distros:
- rhel62-large
- name: .aggregation
- name: .auth
- name: unittest_shell_hang_analyzer_gen
- name: .causally_consistent !.sharding
- name: .change_streams
- name: .misc_js
- name: .encrypt
- name: .jscore .common
- name: .logical_session_cache
- name: .multi_shard
- name: multi_stmt_txn_jscore_passthrough_with_migration_gen
- name: multiversion_gen
- name: .read_write_concern .large
distros:
- rhel62-large
- name: .read_write_concern !.large
- name: .replica_sets !.encrypt !.auth
distros:
- rhel62-large
- name: retryable_writes_jscore_passthrough_gen
- name: .read_only
- name: .sharding .jscore !.wo_snapshot !.multi_stmt
- name: .sharding .txns
- name: .sharding .common
- name: secondary_reads_passthrough_gen
- &enterprise-rhel-70-64-bit-template
name: enterprise-rhel-70-64-bit
display_name: "* Enterprise RHEL 7.0"