summaryrefslogtreecommitdiff
path: root/buildscripts/tests/test_burn_in_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/tests/test_burn_in_tests.py')
-rw-r--r--buildscripts/tests/test_burn_in_tests.py126
1 files changed, 24 insertions, 102 deletions
diff --git a/buildscripts/tests/test_burn_in_tests.py b/buildscripts/tests/test_burn_in_tests.py
index 369131eff60..a5b9ba625d3 100644
--- a/buildscripts/tests/test_burn_in_tests.py
+++ b/buildscripts/tests/test_burn_in_tests.py
@@ -4,18 +4,19 @@ from __future__ import absolute_import
import collections
import datetime
-from io import StringIO
import os
-import sys
import subprocess
+import sys
import unittest
+from io import StringIO
-from mock import Mock, patch, MagicMock
import yaml
+from mock import MagicMock, Mock, patch
import buildscripts.burn_in_tests as under_test
-from buildscripts.ciconfig.evergreen import parse_evergreen_file, VariantTask
import buildscripts.resmokelib.parser as _parser
+from buildscripts.ciconfig.evergreen import parse_evergreen_file
+
_parser.set_run_options()
# pylint: disable=missing-docstring,protected-access,too-many-lines,no-self-use
@@ -23,10 +24,16 @@ _parser.set_run_options()
def create_tests_by_task_mock(n_tasks, n_tests):
return {
- f"task_{i}_gen": under_test.TaskInfo(display_task_name=f"task_{i}", resmoke_args="", tests=[
- f"jstests/tests_{j}" for j in range(n_tests)
- ], require_multiversion_setup=False, distro=f"distro_{i}", suite=f"suite_{i}",
- build_variant="dummy_variant")
+ f"task_{i}_gen": under_test.TaskToBurnInInfo(
+ display_task_name=f"task_{i}",
+ suites=[
+ under_test.SuiteToBurnInInfo(
+ name=f"suite_{i}",
+ resmoke_args="",
+ tests=[f"jstests/tests_{j}" for j in range(n_tests)],
+ ),
+ ],
+ )
for i in range(n_tasks)
}
@@ -294,9 +301,8 @@ def create_variant_task_mock(task_name, suite_name, distro="distro"):
variant_task = MagicMock()
variant_task.name = task_name
variant_task.generated_task_name = task_name
- variant_task.get_suite_name.return_value = suite_name
- variant_task.resmoke_args = f"--suites={suite_name}"
- variant_task.require_multiversion_setup.return_value = False
+ variant_task.get_suite_names.return_value = [suite_name]
+ variant_task.combined_suite_to_resmoke_args_map = {suite_name: f"--suites={suite_name}"}
variant_task.run_on = [distro]
return variant_task
@@ -304,89 +310,9 @@ def create_variant_task_mock(task_name, suite_name, distro="distro"):
class TestTaskInfo(unittest.TestCase):
def test_non_generated_task(self):
suite_name = "suite_1"
- distro_name = "distro_1"
- variant = "build_variant"
evg_conf_mock = MagicMock()
evg_conf_mock.get_task.return_value.is_generate_resmoke_task = False
- task_mock = create_variant_task_mock("task 1", suite_name, distro_name)
- test_list = [f"test{i}.js" for i in range(3)]
- tests_by_suite = {
- suite_name: test_list,
- "suite 2": [f"test{i}.js" for i in range(1)],
- "suite 3": [f"test{i}.js" for i in range(2)],
- }
-
- task_info = under_test.TaskInfo.from_task(task_mock, tests_by_suite, evg_conf_mock, variant)
-
- self.assertIn(suite_name, task_info.resmoke_args)
- for test in test_list:
- self.assertIn(test, task_info.tests)
- self.assertFalse(task_info.require_multiversion_setup)
- self.assertEqual(distro_name, task_info.distro)
-
- def test_generated_task_no_large_on_task(self):
- suite_name = "suite_1"
- distro_name = "distro_1"
- variant = "build_variant"
- evg_conf_mock = MagicMock()
- task_def_mock = evg_conf_mock.get_task.return_value
- task_def_mock.is_generate_resmoke_task = True
- task_def_mock.generate_resmoke_tasks_command = {"vars": {}}
- task_mock = create_variant_task_mock("task 1", suite_name, distro_name)
- test_list = [f"test{i}.js" for i in range(3)]
- tests_by_suite = {
- suite_name: test_list,
- "suite 2": [f"test{i}.js" for i in range(1)],
- "suite 3": [f"test{i}.js" for i in range(2)],
- }
-
- task_info = under_test.TaskInfo.from_task(task_mock, tests_by_suite, evg_conf_mock, variant)
-
- self.assertIn(suite_name, task_info.resmoke_args)
- for test in test_list:
- self.assertIn(test, task_info.tests)
- self.assertFalse(task_info.require_multiversion_setup)
- self.assertEqual(distro_name, task_info.distro)
-
- def test_generated_task_no_large_on_build_variant(self):
- suite_name = "suite_1"
- distro_name = "distro_1"
- variant = "build_variant"
- evg_conf_mock = MagicMock()
- task_def_mock = evg_conf_mock.get_task.return_value
- task_def_mock.is_generate_resmoke_task = True
- task_def_mock.generate_resmoke_tasks_command = {"vars": {"use_large_distro": True}}
- task_mock = create_variant_task_mock("task 1", suite_name, distro_name)
- test_list = [f"test{i}.js" for i in range(3)]
- tests_by_suite = {
- suite_name: test_list,
- "suite 2": [f"test{i}.js" for i in range(1)],
- "suite 3": [f"test{i}.js" for i in range(2)],
- }
-
- task_info = under_test.TaskInfo.from_task(task_mock, tests_by_suite, evg_conf_mock, variant)
-
- self.assertIn(suite_name, task_info.resmoke_args)
- for test in test_list:
- self.assertIn(test, task_info.tests)
- self.assertFalse(task_info.require_multiversion_setup)
- self.assertEqual(distro_name, task_info.distro)
-
- def test_generated_task_large_distro(self):
- suite_name = "suite_1"
- distro_name = "distro_1"
- large_distro_name = "large_distro_1"
- variant = "build_variant"
- evg_conf_mock = MagicMock()
- task_def_mock = evg_conf_mock.get_task.return_value
- task_def_mock.is_generate_resmoke_task = True
- task_def_mock.generate_resmoke_tasks_command = {"vars": {"use_large_distro": True}}
- evg_conf_mock.get_variant.return_value.raw = {
- "expansions": {
- "large_distro_name": large_distro_name
- }
- } # yapf: disable
- task_mock = create_variant_task_mock("task 1", suite_name, distro_name)
+ task_mock = create_variant_task_mock("task 1", suite_name)
test_list = [f"test{i}.js" for i in range(3)]
tests_by_suite = {
suite_name: test_list,
@@ -394,13 +320,11 @@ class TestTaskInfo(unittest.TestCase):
"suite 3": [f"test{i}.js" for i in range(2)],
}
- task_info = under_test.TaskInfo.from_task(task_mock, tests_by_suite, evg_conf_mock, variant)
+ task_info = under_test.TaskToBurnInInfo.from_task(task_mock, tests_by_suite)
- self.assertIn(suite_name, task_info.resmoke_args)
+ self.assertIn(suite_name, task_info.suites[0].name)
for test in test_list:
- self.assertIn(test, task_info.tests)
- self.assertFalse(task_info.require_multiversion_setup)
- self.assertEqual(large_distro_name, task_info.distro)
+ self.assertIn(test, task_info.suites[0].tests)
class TestCreateTaskList(unittest.TestCase):
@@ -444,11 +368,9 @@ class TestCreateTaskList(unittest.TestCase):
self.assertIn("task 1", task_list)
task_info = task_list["task 1"]
- self.assertIn("suite_1", task_info.resmoke_args)
+ self.assertIn("suite_1", task_info.suites[0].resmoke_args)
for i in range(3):
- self.assertIn(f"test{i}.js", task_info.tests)
- self.assertFalse(task_info.require_multiversion_setup)
- self.assertEqual("distro 1", task_info.distro)
+ self.assertIn(f"test{i}.js", task_info.suites[0].tests)
def test_create_task_list_with_excludes(self):
variant = "variant name"
@@ -573,4 +495,4 @@ class TestYamlBurnInExecutor(unittest.TestCase):
yaml_raw = stdout.getvalue()
results = yaml.safe_load(yaml_raw)
self.assertEqual(n_tasks, len(results["discovered_tasks"]))
- self.assertEqual(n_tests, len(results["discovered_tasks"][0]["test_list"]))
+ self.assertEqual(n_tests, len(results["discovered_tasks"][0]["suites"][0]["test_list"]))