From 4e70b15d90f7b38c4179898807c01edc5458186b Mon Sep 17 00:00:00 2001 From: Benjamin Blanc <benjamin.blanc@tiolive.com> Date: Wed, 26 Jun 2013 15:32:58 +0200 Subject: [PATCH] util: testnode up --- erp5/util/taskdistribution/__init__.py | 24 ++++++++++++++++++ erp5/util/testnode/ScalabilityTestRunner.py | 27 ++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/erp5/util/taskdistribution/__init__.py b/erp5/util/taskdistribution/__init__.py index 14417e9460..c92592b371 100644 --- a/erp5/util/taskdistribution/__init__.py +++ b/erp5/util/taskdistribution/__init__.py @@ -138,6 +138,30 @@ class TestResultLineProxy(RPCRetry): def name(self): return self._name + def isRunning(self): + """ + Return : boolean + """ + return bool(self._retryRPC('isTestCaseRunning', [self._test_result_line_path])) + + def isFailed(self): + """ + Return : boolean + """ + return bool(self._retryRPC('isTestCaseFailed', [self._test_result_line_path])) + + def isCompleted(self): + """ + Return : boolean + """ + return bool(self._retryRPC('isTestCaseCompleted', [self._test_result_line_path])) + + def isCancelled(self): + """ + Return : boolean + """ + return bool(self._retryRPC('isTestCaseCancelled', [self._test_result_line_path])) + def stop(self, test_count=None, error_count=None, failure_count=None, skip_count=None, duration=None, date=None, command=None, stdout=None, stderr=None, html_test_result=None, **kw): diff --git a/erp5/util/testnode/ScalabilityTestRunner.py b/erp5/util/testnode/ScalabilityTestRunner.py index eeb67df843..fa8f82a993 100644 --- a/erp5/util/testnode/ScalabilityTestRunner.py +++ b/erp5/util/testnode/ScalabilityTestRunner.py @@ -298,7 +298,32 @@ late a SlapOS (positive) answer." %(str(os.getpid()),str(os.getpid()),)) count += 1 test_result_line_proxy = test_result_proxy.start(exclude_list) self.log("Test for count : %d is in a running state." %count) - # create result line + while test_result_line_proxy.isRunning() and test_result_proxy.isAlive(): + time.sleep(10) + pass + if test_result_line_proxy.isCompleted(): + self.log("Test completed.") + pass + elif not test_result_proxy.isAlive(): + self.log("Test cancelled.") + # Here do somethig with instances + raise ValueError("Test cancelled") + elif test_result_line_proxy.isFailed(): + self.log("Test failed.") + # Here do somethig with instances + raise ValueError("Test failed") + elif test_result_line_proxy.isCancelled(): + self.log("Test cancelled.") + # Here do somethig with instances + raise ValueError("Test has been cancelled") + elif test_result_line_proxy.isRunning(): + self.log("Test always running after max time elapsed.") + # Here do somethig with instances + raise ValueError("Max time for this test case is elapsed.") + else: + self.log("Test in a undeterminated state.") + raise ValueError("Test case is in an undeterminated state") + return {'status_code' : 0} def _cleanUpNodesInformation(self): -- 2.30.9