Gitweb:
http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=2282f1...
Commit: 2282f16026478d2149e56e9e9306adb13ffd3c3e
Parent: 30058ca1dcfd92c628a41c0c3674b0146e8e95a4
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: Wed Apr 9 11:19:57 2014 +0200
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: Wed Apr 9 11:19:57 2014 +0200
testing: Add regression tests for XML metadata of C fence agents
---
fence/agents/kdump/Makefile.am | 5 +++
fence/agents/rackswitch/Makefile.am | 1 +
fence/agents/zvm/Makefile.am | 5 +++
make/agentccheck.mk | 15 +++++++++
tests/data/metadata/fence_kdump.xml | 51 ++++++++++++++++++++++++++++++
tests/data/metadata/fence_rackswitch.xml | 30 +++++++++++++++++
tests/data/metadata/fence_zvmip.xml | 42 ++++++++++++++++++++++++
7 files changed, 149 insertions(+), 0 deletions(-)
diff --git a/fence/agents/kdump/Makefile.am b/fence/agents/kdump/Makefile.am
index 26e452c..0752376 100644
--- a/fence/agents/kdump/Makefile.am
+++ b/fence/agents/kdump/Makefile.am
@@ -12,3 +12,8 @@ fence_kdump_send_SOURCES = fence_kdump_send.c
fence_kdump_send_CFLAGS = -D_GNU_SOURCE
dist_man_MANS = fence_kdump.8 fence_kdump_send.8
+
+include $(top_srcdir)/make/agentccheck.mk
+
+check: xml-check.fence_kdump
+
diff --git a/fence/agents/rackswitch/Makefile.am b/fence/agents/rackswitch/Makefile.am
index 8c435c0..0792308 100644
--- a/fence/agents/rackswitch/Makefile.am
+++ b/fence/agents/rackswitch/Makefile.am
@@ -11,6 +11,7 @@ fence_rackswitch_SOURCES = do_rack.c
man_MANS = $(TARGET).8
include $(top_srcdir)/make/fencemanc.mk
+include $(top_srcdir)/make/agentccheck.mk
clean-local: clean-man
rm -f $(TARGET)
diff --git a/fence/agents/zvm/Makefile.am b/fence/agents/zvm/Makefile.am
index 2dc0005..01d551f 100644
--- a/fence/agents/zvm/Makefile.am
+++ b/fence/agents/zvm/Makefile.am
@@ -11,3 +11,8 @@ fence_zvmip_SOURCES = fence_zvmip.c
fence_zvmip_CFLAGS = -D_GNU_SOURCE
dist_man_MANS = fence_zvm.8 fence_zvmip.8
+
+include $(top_srcdir)/make/agentccheck.mk
+
+# we do not test fence_zvm because it can be compiled only on specific architecture
+check: xml-check.fence_zvmip
\ No newline at end of file
diff --git a/make/agentccheck.mk b/make/agentccheck.mk
new file mode 100644
index 0000000..d0dfb36
--- /dev/null
+++ b/make/agentccheck.mk
@@ -0,0 +1,15 @@
+TEMPFILE:=$(shell mktemp)
+DATADIR:=../../../tests/data/metadata
+
+check: $(TARGET:%=xml-check.%) $(SYMTARGET:%=xml-check.%)
+
+xml-check.%: %
+ $(eval INPUT=$(subst xml-check.,,$@))
+ ./$(INPUT) -o metadata > $(TEMPFILE)
+ diff $(TEMPFILE) $(DATADIR)/$(INPUT).xml
+ rm $(TEMPFILE)
+
+xml-upload.%: %
+ $(eval INPUT=$(subst xml-upload.,,$@))
+ ./$(INPUT) -o metadata > $(DATADIR)/$(INPUT).xml
+
diff --git a/tests/data/metadata/fence_kdump.xml b/tests/data/metadata/fence_kdump.xml
new file mode 100644
index 0000000..c985cac
--- /dev/null
+++ b/tests/data/metadata/fence_kdump.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_kdump" shortdesc="Fence agent for use with
kdump">
+<longdesc>The fence_kdump agent is intended to be used with with kdump
service.</longdesc>
+<vendor-url>http://www.kernel.org/pub/linux/utils/kernel/kexec/</vendor-url>
+<parameters>
+ <parameter name="nodename" unique="0" required="0">
+ <getopt mixed="-n, --nodename" />
+ <content type="string" />
+ <shortdesc lang="en">Name or IP address of node to be
fenced</shortdesc>
+ </parameter>
+ <parameter name="ipport" unique="0" required="0">
+ <getopt mixed="-p, --ipport" />
+ <content type="string" default="7410" />
+ <shortdesc lang="en">Port number</shortdesc>
+ </parameter>
+ <parameter name="family" unique="0" required="0">
+ <getopt mixed="-f, --family" />
+ <content type="string" default="auto" />
+ <shortdesc lang="en">Network family</shortdesc>
+ </parameter>
+ <parameter name="action" unique="0" required="0">
+ <getopt mixed="-o, --action" />
+ <content type="string" default="off" />
+ <shortdesc lang="en">Fencing action</shortdesc>
+ </parameter>
+ <parameter name="timeout" unique="0" required="0">
+ <getopt mixed="-t, --timeout" />
+ <content type="string" default="60" />
+ <shortdesc lang="en">Timeout in seconds</shortdesc>
+ </parameter>
+ <parameter name="verbose" unique="0" required="0">
+ <getopt mixed="-v, --verbose" />
+ <content type="boolean" />
+ <shortdesc lang="en">Print verbose output</shortdesc>
+ </parameter>
+ <parameter name="version" unique="0" required="0">
+ <getopt mixed="-V, --version" />
+ <content type="boolean" />
+ <shortdesc lang="en">Print version</shortdesc>
+ </parameter>
+ <parameter name="usage" unique="0" required="0">
+ <getopt mixed="-h, --help" />
+ <content type="boolean" />
+ <shortdesc lang="en">Print usage</shortdesc>
+ </parameter>
+</parameters>
+<actions>
+ <action name="off" />
+ <action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_rackswitch.xml
b/tests/data/metadata/fence_rackswitch.xml
new file mode 100644
index 0000000..63f2faf
--- /dev/null
+++ b/tests/data/metadata/fence_rackswitch.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_rackswitch" shortdesc="fence_rackswitch -
I/O Fencing agent for RackSaver RackSwitch" >
+<longdesc>fence_rackswitch is an I/O Fencing agent which can be used with the
RackSaver RackSwitch. It logs into the RackSwitch and boots a specified plug. Using the
http interface to the RackSwitch should be avoided while a GFS cluster is running because
the connection may interfere with the operation of this agent.</longdesc>
+<vendor-url>http://www.bladenetwork.net</vendor-url>
+<parameters>
+<parameter name="ipaddr" unique="1" required="1">
+ <getopt mixed="-a [ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP Address or Hostname</shortdesc>
+</parameter>
+<parameter name="login" unique="1" required="1">
+ <getopt mixed="-l [name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login Name</shortdesc>
+</parameter>
+<parameter name="passwd" unique="1" required="0">
+ <getopt mixed="-p [password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+</parameter>
+<parameter name="passwd_script" unique="1"
required="0">
+ <getopt mixed="-S [script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to retrieve password</shortdesc>
+</parameter>
+</parameters>
+<actions>
+ <action name="metadata" />
+</actions>
+</resource-agent>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml
new file mode 100644
index 0000000..0ffab1f
--- /dev/null
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_zvmip" shortdesc="Fence agent for use with
z/VM Virtual Machines">
+<longdesc>The fence_zvm agent is intended to be used with with z/VM SMAPI service
via TCP/IP</longdesc>
+<parameters>
+ <parameter name="port" unique="1" required="1">
+ <getopt mixed="-n, --plug" />
+ <content type="string" />
+ <shortdesc lang="en">Name of the Virtual Machine to be
fenced</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="1" required="1">
+ <getopt mixed="-i, --ip" />
+ <content type="string" />
+ <shortdesc lang="en">IP Name or Address of SMAPI
Server</shortdesc>
+ </parameter>
+ <parameter name="login" unique="1" required="1">
+ <getopt mixed="-u, --username" />
+ <content type="string" />
+ <shortdesc lang="en">Name of authorized SMAPI user
+</shortdesc>
+ </parameter>
+ <parameter name="passwd" unique="1" required="1">
+ <getopt mixed="-p, --password" />
+ <content type="string" />
+ <shortdesc lang="en">Password of authorized SMAPI user
+</shortdesc>
+ </parameter>
+ <parameter name="action" unique="1" required="0">
+ <getopt mixed="-o, --action" />
+ <content type="string" default="off" />
+ <shortdesc lang="en">Fencing action</shortdesc>
+ </parameter>
+ <parameter name="usage" unique="1" required="0">
+ <getopt mixed="-h, --help" />
+ <content type="boolean" />
+ <shortdesc lang="en">Print usage</shortdesc>
+ </parameter>
+</parameters>
+<actions>
+ <action name="off" />
+ <action name="metadata" />
+</actions>
+</resource-agent>