From f6bd26ab37f77c757c6baaf9807f37d4166ed0b1 Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Mon, 22 Oct 2018 12:14:32 +0200 Subject: [PATCH 1/4] Adaptation of retry report --- reframe/frontend/statistics.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/reframe/frontend/statistics.py b/reframe/frontend/statistics.py index 19353d24a5..0deafd3c78 100644 --- a/reframe/frontend/statistics.py +++ b/reframe/frontend/statistics.py @@ -45,12 +45,18 @@ def retry_report(self): report.append('SUMMARY OF RETRIES') report.append(line_width * '-') messages = {} + for run in range(1, len(self._tasks)): for t in self.get_tasks(run): - key = '%s:%s:%s' % ( - t.check.name, t.check.current_partition.fullname, - t.check.current_environ.name - ) + partition_name = '' + environ_name = '' + if t.check.current_partition: + partition_name = t.check.current_partition.fullname + + if t.check.current_environ: + environ_name = t.check.current_environ.name + + key = '%s:%s:%s' % (t.check.name, partition_name, environ_name) # Overwrite entry from previous run if available messages[key] = ( ' * Test %s was retried %s time(s) and %s.' % From fd63bc9e33f60f8926d80a51646b214643578d93 Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Wed, 24 Oct 2018 09:37:53 +0200 Subject: [PATCH 2/4] Add unittest --- unittests/test_policies.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/unittests/test_policies.py b/unittests/test_policies.py index 4ecf5b869c..6b1f60f098 100644 --- a/unittests/test_policies.py +++ b/unittests/test_policies.py @@ -11,8 +11,8 @@ import unittests.fixtures as fixtures from unittests.resources.checks.hellocheck import HelloTest from unittests.resources.checks.frontend_checks import ( - KeyboardInterruptCheck, SleepCheck, SleepCheckPollFail, - SleepCheckPollFailLate, BadSetupCheck, RetriesCheck, SystemExitCheck) + KeyboardInterruptCheck, SystemExitCheck, SleepCheck, SleepCheckPollFail, + SleepCheckPollFailLate, BadSetupCheck, BadSetupCheckEarly, RetriesCheck) class TestSerialExecutionPolicy(unittest.TestCase): @@ -147,6 +147,21 @@ def test_retries_bad_check(self): self.assertEqual(max_retries, rt.runtime().current_run) self.assertEqual(1, self.runner.stats.num_failures()) + def test_retries_bad_check_early(self): + max_retries = 2 + checks = [BadSetupCheckEarly()] + self.runner._max_retries = max_retries + self.runner.runall(checks) + + # Ensure that the test was retried #max_retries times and failed. + self.assertEqual(1, self.runner.stats.num_cases()) + self.assertEqual(max_retries, rt.runtime().current_run) + self.assertEqual(1, self.runner.stats.num_failures()) + + # Ensure that the report succeeds and that the output is as expected. + report = self.runner.stats.retry_report() + self.assertIn("Test BadSetupCheckEarly was retried 2 time(s) and failed.", report) + def test_retries_good_check(self): max_retries = 2 checks = [HelloTest()] From 76aad0f91bca11486fe17f0da3cf16653e6cbac0 Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Wed, 24 Oct 2018 09:38:59 +0200 Subject: [PATCH 3/4] minor change --- unittests/test_policies.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unittests/test_policies.py b/unittests/test_policies.py index 6b1f60f098..a32c1668ae 100644 --- a/unittests/test_policies.py +++ b/unittests/test_policies.py @@ -160,7 +160,8 @@ def test_retries_bad_check_early(self): # Ensure that the report succeeds and that the output is as expected. report = self.runner.stats.retry_report() - self.assertIn("Test BadSetupCheckEarly was retried 2 time(s) and failed.", report) + self.assertIn("Test BadSetupCheckEarly was retried 2 time(s) and " + "failed.", report) def test_retries_good_check(self): max_retries = 2 From cbae966f44704d1411d46a8c4ac6e59675d29afa Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Thu, 25 Oct 2018 15:20:33 +0200 Subject: [PATCH 4/4] merging the bad test unittests --- unittests/test_policies.py | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/unittests/test_policies.py b/unittests/test_policies.py index a32c1668ae..9815345328 100644 --- a/unittests/test_policies.py +++ b/unittests/test_policies.py @@ -138,30 +138,17 @@ def test_system_exit_within_test(self): def test_retries_bad_check(self): max_retries = 2 - checks = [BadSetupCheck()] + checks = [BadSetupCheck(), BadSetupCheckEarly()] self.runner._max_retries = max_retries self.runner.runall(checks) # Ensure that the test was retried #max_retries times and failed. - self.assertEqual(1, self.runner.stats.num_cases()) - self.assertEqual(max_retries, rt.runtime().current_run) - self.assertEqual(1, self.runner.stats.num_failures()) - - def test_retries_bad_check_early(self): - max_retries = 2 - checks = [BadSetupCheckEarly()] - self.runner._max_retries = max_retries - self.runner.runall(checks) - - # Ensure that the test was retried #max_retries times and failed. - self.assertEqual(1, self.runner.stats.num_cases()) + self.assertEqual(2, self.runner.stats.num_cases()) self.assertEqual(max_retries, rt.runtime().current_run) - self.assertEqual(1, self.runner.stats.num_failures()) + self.assertEqual(2, self.runner.stats.num_failures()) - # Ensure that the report succeeds and that the output is as expected. - report = self.runner.stats.retry_report() - self.assertIn("Test BadSetupCheckEarly was retried 2 time(s) and " - "failed.", report) + # Ensure that the report does not raise any exception. + self.runner.stats.retry_report() def test_retries_good_check(self): max_retries = 2