Răsfoiți Sursa

CTS: Add tests with more totem options.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2728 fd59a12c-fef9-0310-b244-a6a79926bd2f
Angus Salkeld 16 ani în urmă
părinte
comite
44e7eb5ca0
2 a modificat fișierele cu 82 adăugiri și 6 ștergeri
  1. 1 0
      cts/corosync.py
  2. 81 6
      cts/corotests.py

+ 1 - 0
cts/corosync.py

@@ -131,6 +131,7 @@ class corosync_flatiron(ClusterManager):
                 r"Shutting down\.",
                 r"Shutting down\.",
                 r"Forcing shutdown\.",
                 r"Forcing shutdown\.",
                 r"core dump",
                 r"core dump",
+                r"Could not bind AF_UNIX",
             ),
             ),
             "LogFileName"    : Environment["LogFileName"],
             "LogFileName"    : Environment["LogFileName"],
             })
             })

+ 81 - 6
cts/corotests.py

@@ -55,6 +55,19 @@ class CoroTest(CTSTest):
                 self.start(n)
                 self.start(n)
         return ret
         return ret
 
 
+
+    def setup_sec_key(self, node):
+        localauthkey = '/tmp/authkey'
+        if not os.path.exists(localauthkey):
+            self.CM.rsh(node, 'corosync-keygen')
+            self.CM.rsh.cp("%s:%s" % (node, "/etc/corosync/authkey"), localauthkey)
+
+        for n in self.CM.Env["nodes"]:
+            if n is not node:
+                #copy key onto other nodes
+                self.CM.rsh.cp(localauthkey, "%s:%s" % (n, "/etc/corosync/authkey"))
+
+
     def teardown(self, node):
     def teardown(self, node):
         self.CM.apply_default_config()
         self.CM.apply_default_config()
         return CTSTest.teardown(self, node)
         return CTSTest.teardown(self, node)
@@ -311,10 +324,69 @@ class CpgMsgOrderBasic(CpgMsgOrderBase):
     def __call__(self, node):
     def __call__(self, node):
         self.incr("calls")
         self.incr("calls")
 
 
-        # o > reconfigure corosync
-        # o > reconfigure interfaces (mtu)
-        # o > restart corosync
-        # o > set node to die after x msgs
+        self.num_msgs_per_node = 100
+        self.cpg_msg_blaster()
+        return self.wait_and_validate_order()
+
+class CpgMsgOrderThreads(CpgMsgOrderBase):
+    '''
+    each sends & logs 100 messages
+    '''
+    def __init__(self, cm):
+        CpgMsgOrderBase.__init__(self,cm)
+        self.name="CpgMsgOrderThreads"
+
+    def setup(self, node):
+        self.CM.new_config['totem/threads'] = 4
+        return CpgMsgOrderBase.setup(self, node)
+
+    def __call__(self, node):
+        self.incr("calls")
+
+        self.num_msgs_per_node = 100
+        self.cpg_msg_blaster()
+        return self.wait_and_validate_order()
+
+
+class CpgMsgOrderSecNss(CpgMsgOrderBase):
+    '''
+    each sends & logs 100 messages
+    '''
+    def __init__(self, cm):
+        CpgMsgOrderBase.__init__(self,cm)
+        self.name="CpgMsgOrderSecNss"
+
+    def setup(self, node):
+        self.setup_sec_key(node)
+        self.CM.new_config['totem/secauth'] = 'on'
+        self.CM.new_config['totem/crypto_accept'] = 'new'
+        self.CM.new_config['totem/crypto_type'] = 'nss'
+        return CpgMsgOrderBase.setup(self, node)
+
+    def __call__(self, node):
+        self.incr("calls")
+
+        self.num_msgs_per_node = 100
+        self.cpg_msg_blaster()
+        return self.wait_and_validate_order()
+
+class CpgMsgOrderSecSober(CpgMsgOrderBase):
+    '''
+    each sends & logs 100 messages
+    '''
+    def __init__(self, cm):
+        CpgMsgOrderBase.__init__(self,cm)
+        self.name="CpgMsgOrderSecSober"
+
+    def setup(self, node):
+        self.setup_sec_key(node)
+        self.CM.new_config['totem/secauth'] = 'on'
+        self.CM.new_config['totem/crypto_type'] = 'sober'
+        return CpgMsgOrderBase.setup(self, node)
+
+    def __call__(self, node):
+        self.incr("calls")
+
         self.num_msgs_per_node = 100
         self.num_msgs_per_node = 100
         self.cpg_msg_blaster()
         self.cpg_msg_blaster()
         return self.wait_and_validate_order()
         return self.wait_and_validate_order()
@@ -359,14 +431,17 @@ class MemLeakSession(CoroTest):
 
 
 
 
 AllTestClasses = []
 AllTestClasses = []
+AllTestClasses.append(CpgMsgOrderBasic)
+AllTestClasses.append(CpgMsgOrderThreads)
+AllTestClasses.append(CpgMsgOrderSecNss)
+AllTestClasses.append(CpgMsgOrderSecSober)
 AllTestClasses.append(MemLeakObject)
 AllTestClasses.append(MemLeakObject)
 AllTestClasses.append(MemLeakSession)
 AllTestClasses.append(MemLeakSession)
+AllTestClasses.append(CpgCfgChgOnExecCrash)
 AllTestClasses.append(CpgCfgChgOnGroupLeave)
 AllTestClasses.append(CpgCfgChgOnGroupLeave)
 AllTestClasses.append(CpgCfgChgOnNodeLeave)
 AllTestClasses.append(CpgCfgChgOnNodeLeave)
 AllTestClasses.append(CpgCfgChgOnNodeLeave_v1)
 AllTestClasses.append(CpgCfgChgOnNodeLeave_v1)
 AllTestClasses.append(CpgCfgChgOnNodeLeave_v2)
 AllTestClasses.append(CpgCfgChgOnNodeLeave_v2)
-AllTestClasses.append(CpgCfgChgOnExecCrash)
-AllTestClasses.append(CpgMsgOrderBasic)
 
 
 AllTestClasses.append(FlipTest)
 AllTestClasses.append(FlipTest)
 AllTestClasses.append(RestartTest)
 AllTestClasses.append(RestartTest)