Просмотр исходного кода

CTS: fix some tests that didn't handle been called more than one

Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
Angus Salkeld 14 лет назад
Родитель
Сommit
f3387a8287
2 измененных файлов с 12 добавлено и 3 удалено
  1. 1 1
      cts/corosync.py
  2. 11 2
      cts/corotests.py

+ 1 - 1
cts/corosync.py

@@ -438,7 +438,7 @@ class TestAgent(object):
         '''Tear down (undo) the given ScenarioComponent'''
         '''Tear down (undo) the given ScenarioComponent'''
         self.env.debug('test agent: stopping %s on node %s' % (self.binary, self.node))
         self.env.debug('test agent: stopping %s on node %s' % (self.binary, self.node))
         self.sock.close ()
         self.sock.close ()
-        self.rsh(self.node, "killall " + self.binary + " 2>/dev/null")
+        self.rsh(self.node, "killall -9 " + self.binary + " 2>/dev/null")
         self.started = False
         self.started = False
 
 
     def kill(self):
     def kill(self):

+ 11 - 2
cts/corotests.py

@@ -33,6 +33,7 @@ Copyright (c) 2010 Red Hat, Inc.
 # THE POSSIBILITY OF SUCH DAMAGE.
 # THE POSSIBILITY OF SUCH DAMAGE.
 
 
 import random
 import random
+import socket
 from UserDict import UserDict
 from UserDict import UserDict
 from cts.CTStests import *
 from cts.CTStests import *
 from corosync import CpgTestAgent
 from corosync import CpgTestAgent
@@ -405,7 +406,6 @@ class CpgMsgOrderBase(CoroTest):
         ret = CoroTest.setup(self, node)
         ret = CoroTest.setup(self, node)
 
 
         for n in self.CM.Env["nodes"]:
         for n in self.CM.Env["nodes"]:
-            self.total_num_msgs = self.total_num_msgs + self.num_msgs_per_node
             self.CM.cpg_agent[n].clean_start()
             self.CM.cpg_agent[n].clean_start()
             self.CM.cpg_agent[n].cpg_join(self.name)
             self.CM.cpg_agent[n].cpg_join(self.name)
             self.CM.cpg_agent[n].record_messages()
             self.CM.cpg_agent[n].record_messages()
@@ -420,6 +420,10 @@ class CpgMsgOrderBase(CoroTest):
     def wait_and_validate_order(self):
     def wait_and_validate_order(self):
         msgs = {}
         msgs = {}
 
 
+        self.total_num_msgs = 0
+        for n in self.CM.Env["nodes"]:
+            self.total_num_msgs = self.total_num_msgs + self.num_msgs_per_node
+
         for n in self.CM.Env["nodes"]:
         for n in self.CM.Env["nodes"]:
             msgs[n] = []
             msgs[n] = []
             stopped = False
             stopped = False
@@ -427,7 +431,11 @@ class CpgMsgOrderBase(CoroTest):
 
 
             while len(msgs[n]) < self.total_num_msgs and waited < 360:
             while len(msgs[n]) < self.total_num_msgs and waited < 360:
 
 
-                msg = self.CM.cpg_agent[n].read_messages(50)
+                try:
+                    msg = self.CM.cpg_agent[n].read_messages(50)
+                except:
+                    return self.failure('connection to test cpg_agent failed.')
+
                 if not msg == None:
                 if not msg == None:
                     msgl = msg.split(";")
                     msgl = msg.split(";")
 
 
@@ -878,6 +886,7 @@ class VoteQuorumGoDown(VoteQuorumBase):
     def __call__(self, node):
     def __call__(self, node):
         self.incr("calls")
         self.incr("calls")
 
 
+        self.victims = []
         pats = []
         pats = []
         pats.append("%s .*VQ notification quorate: 0" % self.listener)
         pats.append("%s .*VQ notification quorate: 0" % self.listener)
         pats.append("%s .*NQ notification quorate: 0" % self.listener)
         pats.append("%s .*NQ notification quorate: 0" % self.listener)