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

CTS: add sam tests

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2744 fd59a12c-fef9-0310-b244-a6a79926bd2f
Angus Salkeld 16 лет назад
Родитель
Сommit
afc6b1a1e6
5 измененных файлов с 94 добавлено и 8 удалено
  1. 5 1
      cts/agents/Makefile.am
  2. 9 0
      cts/agents/common_test_agent.h
  3. 0 5
      cts/agents/confdb_test_agent.c
  4. 20 2
      cts/corosync.py
  5. 60 0
      cts/corotests.py

+ 5 - 1
cts/agents/Makefile.am

@@ -33,7 +33,7 @@ MAINTAINERCLEANFILES = Makefile.in
 INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
 
 SOURCES =
-TEST_AGENTS = cpg_test_agent confdb_test_agent
+TEST_AGENTS = cpg_test_agent confdb_test_agent sam_test_agent
 
 if INSTALL_TESTAGENTS
 agentdir = $(datadir)/$(PACKAGE)/tests
@@ -62,6 +62,10 @@ confdb_test_agent_SOURCES = confdb_test_agent.c common_test_agent.c
 confdb_test_agent_LDADD =  -lconfdb -lcoroipcc ../../exec/coropoll.o
 confdb_test_agent_LDFLAGS =  -L../../lib 
 
+sam_test_agent_SOURCES = sam_test_agent.c common_test_agent.c
+sam_test_agent_LDADD =  -lsam ../../exec/coropoll.o
+sam_test_agent_LDFLAGS =  -L../../lib 
+
 
 if BUILD_DARWIN
 

+ 9 - 0
cts/agents/common_test_agent.h

@@ -31,6 +31,15 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+
+
+#define OK_STR "OK"
+#define FAIL_STR "FAIL"
+#define NOT_SUPPORTED_STR "NOT_SUPPORTED"
+
+
+
 extern int32_t parse_debug;
 #define HOW_BIG_AND_BUF 4096
 

+ 0 - 5
cts/agents/confdb_test_agent.c

@@ -51,11 +51,6 @@
 #include <corosync/confdb.h>
 #include "common_test_agent.h"
 
-
-#define OK_STR "OK"
-#define FAIL_STR "FAIL"
-#define NOT_SUPPORTED_STR "NOT_SUPPORTED"
-
 #define INCDEC_VALUE 45
 
 confdb_callbacks_t callbacks = {

+ 20 - 2
cts/corosync.py

@@ -137,6 +137,7 @@ class corosync_flatiron(ClusterManager):
             })
         self.cpg_agent={}
         self.confdb_agent={}
+        self.sam_agent={}
         self.config = CoroConfig ()
         self.node_to_ip = {}
         
@@ -216,6 +217,8 @@ class corosync_flatiron(ClusterManager):
             self.cpg_agent[node].restart()
         if self.confdb_agent.has_key(node):
             self.confdb_agent[node].restart()
+        if self.sam_agent.has_key(node):
+            self.sam_agent[node].restart()
         return ret
 
     def StopaCM(self, node):
@@ -225,8 +228,8 @@ class corosync_flatiron(ClusterManager):
         self.debug('stoping corosync on : ' + node)
         if self.cpg_agent.has_key(node):
             self.cpg_agent[node].stop()
-        if self.confdb_agent.has_key(node):
-            self.confdb_agent[node].stop()
+        if self.sam_agent.has_key(node):
+            self.sam_agent[node].stop()
         return ClusterManager.StopaCM(self, node)
 
     def test_node_CM(self, node):
@@ -329,6 +332,8 @@ class TestAgentComponent(ScenarioComponent):
             self.CM.cpg_agent[node].start()
             self.CM.confdb_agent[node] = ConfdbTestAgent(node, CM.Env)
             self.CM.confdb_agent[node].start()
+            self.CM.sam_agent[node] = SamTestAgent(node, CM.Env)
+            self.CM.sam_agent[node].start()
         return 1
 
     def TearDown(self, CM):
@@ -337,6 +342,7 @@ class TestAgentComponent(ScenarioComponent):
         for node in self.Env["nodes"]:
             self.CM.cpg_agent[node].stop()
             self.CM.confdb_agent[node].stop()
+            self.CM.sam_agent[node].stop()
 
 ###################################################################
 class TestAgent(object):
@@ -549,3 +555,15 @@ class ConfdbTestAgent(TestAgent):
     def cpg_local_get(self):
         return 1
 
+###################################################################
+class SamTestAgent(TestAgent):
+
+    def __init__(self, node, Env=None):
+        TestAgent.__init__(self, "sam_test_agent", node, 9036, env=Env)
+        self.initialized = False
+        self.nodeid = None
+        self.send_recv = True
+
+    def cpg_local_get(self):
+        return 1
+

+ 60 - 0
cts/corotests.py

@@ -582,6 +582,62 @@ class ConfdbNotificationTest(CoroTest):
         else:
             return self.failure('notification_test failed')
 
+###################################################################
+class SamTest1(CoroTest):
+    def __init__(self, cm):
+        CoroTest.__init__(self, cm)
+        self.name="SamTest1"
+
+    def __call__(self, node):
+        self.incr("calls")
+        res = self.CM.sam_agent[node].test1()
+        if 'OK' in res:
+            return self.success()
+        else:
+            return self.failure('sam test 1 failed')
+
+###################################################################
+class SamTest2(CoroTest):
+    def __init__(self, cm):
+        CoroTest.__init__(self, cm)
+        self.name="SamTest2"
+
+    def __call__(self, node):
+        self.incr("calls")
+        res = self.CM.sam_agent[node].test2()
+        if 'OK' in res:
+            return self.success()
+        else:
+            return self.failure('sam test 2 failed')
+
+###################################################################
+class SamTest3(CoroTest):
+    def __init__(self, cm):
+        CoroTest.__init__(self, cm)
+        self.name="SamTest3"
+
+    def __call__(self, node):
+        self.incr("calls")
+        res = self.CM.sam_agent[node].test3()
+        if 'OK' in res:
+            return self.success()
+        else:
+            return self.failure('sam test 3 failed')
+
+###################################################################
+class SamTest4(CoroTest):
+    def __init__(self, cm):
+        CoroTest.__init__(self, cm)
+        self.name="SamTest4"
+
+    def __call__(self, node):
+        self.incr("calls")
+        res = self.CM.sam_agent[node].test4()
+        if 'OK' in res:
+            return self.success()
+        else:
+            return self.failure('sam test 4 failed')
+
 
 GenTestClasses = []
 GenTestClasses.append(CpgMsgOrderBasic)
@@ -597,6 +653,10 @@ AllTestClasses.append(ConfdbReplaceTest)
 AllTestClasses.append(ConfdbIncrementTest)
 AllTestClasses.append(ConfdbObjectFindTest)
 AllTestClasses.append(ConfdbNotificationTest)
+AllTestClasses.append(SamTest1)
+AllTestClasses.append(SamTest2)
+AllTestClasses.append(SamTest3)
+AllTestClasses.append(SamTest4)
 
 AllTestClasses.append(ServiceLoadTest)
 AllTestClasses.append(MemLeakObject)