From 6eb20099a4ca3d15d00d0e3d9e7416ca73a9aa90 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Wed, 14 Apr 2010 01:43:06 +0000 Subject: [PATCH] CTS: add simul start/stop to GenTestClasses git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2760 fd59a12c-fef9-0310-b244-a6a79926bd2f --- cts/corotests.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/cts/corotests.py b/cts/corotests.py index e3eb213d..7a964970 100644 --- a/cts/corotests.py +++ b/cts/corotests.py @@ -79,6 +79,8 @@ class CoroTest(CTSTest): self.stop(n) return ret + def config_valid(self, config): + return True def teardown(self, node): self.CM.apply_default_config() @@ -200,6 +202,9 @@ class CpgCfgChgOnLowestNodeJoin(CTSTest): self.need_all_up = False self.config['compatibility'] = 'none' + def config_valid(self, config): + return True + def lowest_ip_set(self): self.lowest = None for n in self.CM.Env["nodes"]: @@ -688,6 +693,14 @@ class VoteQuorumBase(CoroTest): #self.CM.votequorum_agent[self.listener].record_events() return ret + + def config_valid(self, config): + if config.has_key('totem/rrp_mode'): + return False + else: + return True + + def wait_for_quorum_change(self): found = False max_timeout = 5 * 60 @@ -845,7 +858,67 @@ class VoteQuorumGoUp(VoteQuorumBase): return self.success() + +################################################################### +class GenSimulStart(CoroTest): +################################################################### + '''Start all the nodes ~ simultaneously''' + def __init__(self, cm): + CoroTest.__init__(self,cm) + self.name="GenSimulStart" + self.need_all_up = False + self.stopall = SimulStopLite(cm) + self.startall = SimulStartLite(cm) + + def __call__(self, dummy): + '''Perform the 'SimulStart' test. ''' + self.incr("calls") + + # We ignore the "node" parameter... + + # Shut down all the nodes... + ret = self.stopall(None) + if not ret: + return self.failure("Setup failed") + + self.CM.clear_all_caches() + + if not self.startall(None): + return self.failure("Startall failed") + + return self.success() + +################################################################### +class GenSimulStop(CoroTest): +################################################################### + '''Stop all the nodes ~ simultaneously''' + def __init__(self, cm): + CoroTest.__init__(self,cm) + self.name="GenSimulStop" + self.startall = SimulStartLite(cm) + self.stopall = SimulStopLite(cm) + self.need_all_up = True + + def __call__(self, dummy): + '''Perform the 'GenSimulStop' test. ''' + self.incr("calls") + + # We ignore the "node" parameter... + + # Start up all the nodes... + ret = self.startall(None) + if not ret: + return self.failure("Setup failed") + + if not self.stopall(None): + return self.failure("Stopall failed") + + return self.success() + + GenTestClasses = [] +GenTestClasses.append(GenSimulStart) +GenTestClasses.append(GenSimulStop) GenTestClasses.append(CpgMsgOrderBasic) GenTestClasses.append(CpgMsgOrderZcb) GenTestClasses.append(CpgCfgChgOnExecCrash) @@ -872,9 +945,7 @@ AllTestClasses.append(MemLeakSession) AllTestClasses.append(FlipTest) AllTestClasses.append(RestartTest) AllTestClasses.append(StartOnebyOne) -AllTestClasses.append(SimulStart) AllTestClasses.append(StopOnebyOne) -AllTestClasses.append(SimulStop) AllTestClasses.append(RestartOnebyOne) @@ -955,7 +1026,7 @@ def CoroTestList(cm, audits): for cfg in configs: for testclass in GenTestClasses: bound_test = testclass(cm) - if bound_test.is_applicable(): + if bound_test.is_applicable() and bound_test.config_valid(cfg): bound_test.Audits = audits for c in cfg.keys(): bound_test.config[c] = cfg[c]