summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuildscripts/evergreen_generate_resmoke_tasks.py3
-rw-r--r--buildscripts/tests/test_evergreen_generate_resmoke_tasks.py12
2 files changed, 9 insertions, 6 deletions
diff --git a/buildscripts/evergreen_generate_resmoke_tasks.py b/buildscripts/evergreen_generate_resmoke_tasks.py
index a5dd4773a07..36986b28f2d 100755
--- a/buildscripts/evergreen_generate_resmoke_tasks.py
+++ b/buildscripts/evergreen_generate_resmoke_tasks.py
@@ -42,6 +42,7 @@ LOGGER = structlog.getLogger(__name__)
TEST_SUITE_DIR = os.path.join("buildscripts", "resmokeconfig", "suites")
CONFIG_DIR = "generated_resmoke_config"
+AVG_SETUP_TIME = int(timedelta(minutes=5).total_seconds())
CONFIG_FILE = "./.evergreen.yml"
MIN_TIMEOUT_SECONDS = int(timedelta(minutes=5).total_seconds())
LOOKBACK_DURATION_DAYS = 14
@@ -358,7 +359,7 @@ def calculate_timeout(avg_runtime, scaling_factor):
distance_to_min = 60 - (runtime % 60)
return int(math.ceil(runtime + distance_to_min))
- return max(MIN_TIMEOUT_SECONDS, round_to_minute(avg_runtime)) * scaling_factor
+ return max(MIN_TIMEOUT_SECONDS, round_to_minute(avg_runtime)) * scaling_factor + AVG_SETUP_TIME
def should_tasks_be_generated(evg_api, task_id):
diff --git a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py
index e4c4e1bb2a1..b62027b8bea 100644
--- a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py
+++ b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py
@@ -448,18 +448,20 @@ class PrepareDirectoryForSuite(unittest.TestCase):
class CalculateTimeoutTest(unittest.TestCase):
def test_min_timeout(self):
- self.assertEqual(under_test.MIN_TIMEOUT_SECONDS, under_test.calculate_timeout(15, 1))
+ self.assertEqual(under_test.MIN_TIMEOUT_SECONDS + under_test.AVG_SETUP_TIME,
+ under_test.calculate_timeout(15, 1))
def test_over_timeout_by_one_minute(self):
- self.assertEqual(360, under_test.calculate_timeout(301, 1))
+ self.assertEqual(660, under_test.calculate_timeout(301, 1))
def test_float_runtimes(self):
- self.assertEqual(360, under_test.calculate_timeout(300.14, 1))
+ self.assertEqual(660, under_test.calculate_timeout(300.14, 1))
def test_scaling_factor(self):
scaling_factor = 10
- self.assertEqual(under_test.MIN_TIMEOUT_SECONDS * scaling_factor,
- under_test.calculate_timeout(30, scaling_factor))
+ self.assertEqual(
+ under_test.MIN_TIMEOUT_SECONDS * scaling_factor + under_test.AVG_SETUP_TIME,
+ under_test.calculate_timeout(30, scaling_factor))
class EvergreenConfigGeneratorTest(unittest.TestCase):