summaryrefslogtreecommitdiffstats
path: root/lrm/test/testcases
diff options
context:
space:
mode:
Diffstat (limited to 'lrm/test/testcases')
-rw-r--r--lrm/test/testcases/BSC4
-rw-r--r--lrm/test/testcases/Makefile.am27
-rw-r--r--lrm/test/testcases/basicset6
-rwxr-xr-xlrm/test/testcases/common.filter27
-rw-r--r--lrm/test/testcases/flood19
-rw-r--r--lrm/test/testcases/flood.exp1354
-rw-r--r--lrm/test/testcases/metadata29
-rw-r--r--lrm/test/testcases/metadata.exp31
-rwxr-xr-xlrm/test/testcases/ra-list.sh12
-rw-r--r--lrm/test/testcases/rscexec48
-rw-r--r--lrm/test/testcases/rscexec.exp117
-rw-r--r--lrm/test/testcases/rscmgmt29
-rw-r--r--lrm/test/testcases/rscmgmt.exp74
-rwxr-xr-xlrm/test/testcases/rscmgmt.log_filter13
-rw-r--r--lrm/test/testcases/serialize33
-rw-r--r--lrm/test/testcases/serialize.exp100
-rw-r--r--lrm/test/testcases/stonith2
-rw-r--r--lrm/test/testcases/stonith.exp2
-rwxr-xr-xlrm/test/testcases/xmllint.sh20
19 files changed, 1947 insertions, 0 deletions
diff --git a/lrm/test/testcases/BSC b/lrm/test/testcases/BSC
new file mode 100644
index 0000000..157fb6c
--- /dev/null
+++ b/lrm/test/testcases/BSC
@@ -0,0 +1,4 @@
+rscmgmt
+metadata
+rscexec
+stonith
diff --git a/lrm/test/testcases/Makefile.am b/lrm/test/testcases/Makefile.am
new file mode 100644
index 0000000..49728d9
--- /dev/null
+++ b/lrm/test/testcases/Makefile.am
@@ -0,0 +1,27 @@
+#
+# Author: Sun Jiang Dong <sunjd@cn.ibm.com>
+# Copyright (c) 2004 International Business Machines
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+MAINTAINERCLEANFILES = Makefile.in
+
+testcasesdir = $(datadir)/$(PACKAGE_NAME)/lrmtest/testcases
+testcases_SCRIPTS = common.filter ra-list.sh rscmgmt.log_filter xmllint.sh
+testcases_DATA = BSC basicset metadata metadata.exp rscexec \
+ rscexec.exp rscmgmt rscmgmt.exp \
+ stonith stonith.exp
+# shouldn't need this next line...
+EXTRA_DIST = $(testcases_SCRIPTS) $(testcases_DATA)
diff --git a/lrm/test/testcases/basicset b/lrm/test/testcases/basicset
new file mode 100644
index 0000000..62b9c04
--- /dev/null
+++ b/lrm/test/testcases/basicset
@@ -0,0 +1,6 @@
+rscmgmt
+metadata
+rscexec
+stonith
+serialize
+flood
diff --git a/lrm/test/testcases/common.filter b/lrm/test/testcases/common.filter
new file mode 100755
index 0000000..f95e9d8
--- /dev/null
+++ b/lrm/test/testcases/common.filter
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+sed '
+/^lrmadmin/s/([0-9][0-9]*)/()/
+/^lrmadmin/s/^lrmadmin[^:]*: [^ ]* //
+s/call_id=[0-9][0-9]*/call_id=(removed)/
+/run at:/d
+/last rc change at:/d
+/queue time:/d
+' |
+awk '
+/Waiting for lrmd to callback.../ { n=1; next; }
+n==1 && /----------------operation--------------/ { n++; next; }
+n==2 && /type:/ { op=$0; sub("type:","",op); next }
+n==2 && /operation status:/ { desc=$0; sub("operation status:","",desc); next }
+n==2 && /op_status:/ { stat=$0; sub("op_status: *","",stat); next }
+n==2 && /return code:/ { rc=$0; sub("return code: *","",rc); next }
+n==2 && /output data:/ { n++; next; }
+n==3 && /---------------------------------------/ {
+ printf("> %s %s (status=%s,rc=%s): %s\n",op,desc,stat,rc,substr(output,2));
+ n=0;
+ output="";
+ next;
+}
+n==3 && $1!="" { output=output"/"$0; next; }
+{ print }
+'
diff --git a/lrm/test/testcases/flood b/lrm/test/testcases/flood
new file mode 100644
index 0000000..de6d742
--- /dev/null
+++ b/lrm/test/testcases/flood
@@ -0,0 +1,19 @@
+# 30 secs should be enough even on slow machines
+list
+%setenv dflt_timeout=30000
+# add 64 resources
+%repeat 64
+add rsc=r%i args="delay=0"
+# start all in background
+%bgrepeat 64
+exec rsc=r%i operation=start
+%sleep 1
+# and run a monitor on all in background
+%bgrepeat 64
+exec rsc=r%i operation=monitor
+%sleep 1
+# finally, stop all
+%repeat 64
+exec rsc=r%i operation=stop
+%repeat 64
+del rsc=r%i
diff --git a/lrm/test/testcases/flood.exp b/lrm/test/testcases/flood.exp
new file mode 100644
index 0000000..cf8a2bb
--- /dev/null
+++ b/lrm/test/testcases/flood.exp
@@ -0,0 +1,1354 @@
+.TRY List resources
+Currently no resources are managed by LRM.
+.SETENV dflt_timeout=30000
+.REPEAT 64
+.TRY Add resource r1 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r2 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r3 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r4 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r5 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r6 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r7 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r8 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r9 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r10 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r11 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r12 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r13 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r14 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r15 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r16 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r17 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r18 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r19 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r20 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r21 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r22 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r23 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r24 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r25 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r26 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r27 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r28 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r29 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r30 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r31 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r32 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r33 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r34 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r35 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r36 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r37 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r38 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r39 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r40 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r41 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r42 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r43 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r44 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r45 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r46 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r47 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r48 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r49 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r50 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r51 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r52 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r53 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r54 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r55 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r56 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r57 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r58 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r59 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r60 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r61 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r62 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r63 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY Add resource r64 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.BGREPEAT 64
+.BG test line 9/job 1 runs in background
+.BG test line 9/job 2 runs in background
+.BG test line 9/job 3 runs in background
+.BG test line 9/job 4 runs in background
+.BG test line 9/job 5 runs in background
+.BG test line 9/job 6 runs in background
+.BG test line 9/job 7 runs in background
+.BG test line 9/job 8 runs in background
+.BG test line 9/job 9 runs in background
+.BG test line 9/job 10 runs in background
+.BG test line 9/job 11 runs in background
+.BG test line 9/job 12 runs in background
+.BG test line 9/job 13 runs in background
+.BG test line 9/job 14 runs in background
+.BG test line 9/job 15 runs in background
+.BG test line 9/job 16 runs in background
+.BG test line 9/job 17 runs in background
+.BG test line 9/job 18 runs in background
+.BG test line 9/job 19 runs in background
+.BG test line 9/job 20 runs in background
+.BG test line 9/job 21 runs in background
+.BG test line 9/job 22 runs in background
+.BG test line 9/job 23 runs in background
+.BG test line 9/job 24 runs in background
+.BG test line 9/job 25 runs in background
+.BG test line 9/job 26 runs in background
+.BG test line 9/job 27 runs in background
+.BG test line 9/job 28 runs in background
+.BG test line 9/job 29 runs in background
+.BG test line 9/job 30 runs in background
+.BG test line 9/job 31 runs in background
+.BG test line 9/job 32 runs in background
+.BG test line 9/job 33 runs in background
+.BG test line 9/job 34 runs in background
+.BG test line 9/job 35 runs in background
+.BG test line 9/job 36 runs in background
+.BG test line 9/job 37 runs in background
+.BG test line 9/job 38 runs in background
+.BG test line 9/job 39 runs in background
+.BG test line 9/job 40 runs in background
+.BG test line 9/job 41 runs in background
+.BG test line 9/job 42 runs in background
+.BG test line 9/job 43 runs in background
+.BG test line 9/job 44 runs in background
+.BG test line 9/job 45 runs in background
+.BG test line 9/job 46 runs in background
+.BG test line 9/job 47 runs in background
+.BG test line 9/job 48 runs in background
+.BG test line 9/job 49 runs in background
+.BG test line 9/job 50 runs in background
+.BG test line 9/job 51 runs in background
+.BG test line 9/job 52 runs in background
+.BG test line 9/job 53 runs in background
+.BG test line 9/job 54 runs in background
+.BG test line 9/job 55 runs in background
+.BG test line 9/job 56 runs in background
+.BG test line 9/job 57 runs in background
+.BG test line 9/job 58 runs in background
+.BG test line 9/job 59 runs in background
+.BG test line 9/job 60 runs in background
+.BG test line 9/job 61 runs in background
+.BG test line 9/job 62 runs in background
+.BG test line 9/job 63 runs in background
+.BG test line 9/job 64 runs in background
+.SLEEP 1
+.BGREPEAT 64
+.BG test line 13/job 1 runs in background
+.BG test line 13/job 2 runs in background
+.BG test line 13/job 3 runs in background
+.BG test line 13/job 4 runs in background
+.BG test line 13/job 5 runs in background
+.BG test line 13/job 6 runs in background
+.BG test line 13/job 7 runs in background
+.BG test line 13/job 8 runs in background
+.BG test line 13/job 9 runs in background
+.BG test line 13/job 10 runs in background
+.BG test line 13/job 11 runs in background
+.BG test line 13/job 12 runs in background
+.BG test line 13/job 13 runs in background
+.BG test line 13/job 14 runs in background
+.BG test line 13/job 15 runs in background
+.BG test line 13/job 16 runs in background
+.BG test line 13/job 17 runs in background
+.BG test line 13/job 18 runs in background
+.BG test line 13/job 19 runs in background
+.BG test line 13/job 20 runs in background
+.BG test line 13/job 21 runs in background
+.BG test line 13/job 22 runs in background
+.BG test line 13/job 23 runs in background
+.BG test line 13/job 24 runs in background
+.BG test line 13/job 25 runs in background
+.BG test line 13/job 26 runs in background
+.BG test line 13/job 27 runs in background
+.BG test line 13/job 28 runs in background
+.BG test line 13/job 29 runs in background
+.BG test line 13/job 30 runs in background
+.BG test line 13/job 31 runs in background
+.BG test line 13/job 32 runs in background
+.BG test line 13/job 33 runs in background
+.BG test line 13/job 34 runs in background
+.BG test line 13/job 35 runs in background
+.BG test line 13/job 36 runs in background
+.BG test line 13/job 37 runs in background
+.BG test line 13/job 38 runs in background
+.BG test line 13/job 39 runs in background
+.BG test line 13/job 40 runs in background
+.BG test line 13/job 41 runs in background
+.BG test line 13/job 42 runs in background
+.BG test line 13/job 43 runs in background
+.BG test line 13/job 44 runs in background
+.BG test line 13/job 45 runs in background
+.BG test line 13/job 46 runs in background
+.BG test line 13/job 47 runs in background
+.BG test line 13/job 48 runs in background
+.BG test line 13/job 49 runs in background
+.BG test line 13/job 50 runs in background
+.BG test line 13/job 51 runs in background
+.BG test line 13/job 52 runs in background
+.BG test line 13/job 53 runs in background
+.BG test line 13/job 54 runs in background
+.BG test line 13/job 55 runs in background
+.BG test line 13/job 56 runs in background
+.BG test line 13/job 57 runs in background
+.BG test line 13/job 58 runs in background
+.BG test line 13/job 59 runs in background
+.BG test line 13/job 60 runs in background
+.BG test line 13/job 61 runs in background
+.BG test line 13/job 62 runs in background
+.BG test line 13/job 63 runs in background
+.BG test line 13/job 64 runs in background
+.SLEEP 1
+.REPEAT 64
+.TRY Exec r1 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r2 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r3 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r4 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r5 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r6 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r7 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r8 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r9 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r10 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r11 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r12 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r13 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r14 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r15 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r16 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r17 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r18 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r19 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r20 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r21 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r22 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r23 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r24 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r25 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r26 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r27 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r28 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r29 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r30 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r31 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r32 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r33 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r34 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r35 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r36 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r37 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r38 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r39 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r40 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r41 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r42 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r43 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r44 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r45 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r46 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r47 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r48 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r49 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r50 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r51 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r52 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r53 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r54 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r55 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r56 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r57 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r58 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r59 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r60 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r61 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r62 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r63 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec r64 op=stop timeout=30000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.REPEAT 64
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.TRY Delete resource r2
+Succeeded in deleting this resource.
+.TRY Delete resource r3
+Succeeded in deleting this resource.
+.TRY Delete resource r4
+Succeeded in deleting this resource.
+.TRY Delete resource r5
+Succeeded in deleting this resource.
+.TRY Delete resource r6
+Succeeded in deleting this resource.
+.TRY Delete resource r7
+Succeeded in deleting this resource.
+.TRY Delete resource r8
+Succeeded in deleting this resource.
+.TRY Delete resource r9
+Succeeded in deleting this resource.
+.TRY Delete resource r10
+Succeeded in deleting this resource.
+.TRY Delete resource r11
+Succeeded in deleting this resource.
+.TRY Delete resource r12
+Succeeded in deleting this resource.
+.TRY Delete resource r13
+Succeeded in deleting this resource.
+.TRY Delete resource r14
+Succeeded in deleting this resource.
+.TRY Delete resource r15
+Succeeded in deleting this resource.
+.TRY Delete resource r16
+Succeeded in deleting this resource.
+.TRY Delete resource r17
+Succeeded in deleting this resource.
+.TRY Delete resource r18
+Succeeded in deleting this resource.
+.TRY Delete resource r19
+Succeeded in deleting this resource.
+.TRY Delete resource r20
+Succeeded in deleting this resource.
+.TRY Delete resource r21
+Succeeded in deleting this resource.
+.TRY Delete resource r22
+Succeeded in deleting this resource.
+.TRY Delete resource r23
+Succeeded in deleting this resource.
+.TRY Delete resource r24
+Succeeded in deleting this resource.
+.TRY Delete resource r25
+Succeeded in deleting this resource.
+.TRY Delete resource r26
+Succeeded in deleting this resource.
+.TRY Delete resource r27
+Succeeded in deleting this resource.
+.TRY Delete resource r28
+Succeeded in deleting this resource.
+.TRY Delete resource r29
+Succeeded in deleting this resource.
+.TRY Delete resource r30
+Succeeded in deleting this resource.
+.TRY Delete resource r31
+Succeeded in deleting this resource.
+.TRY Delete resource r32
+Succeeded in deleting this resource.
+.TRY Delete resource r33
+Succeeded in deleting this resource.
+.TRY Delete resource r34
+Succeeded in deleting this resource.
+.TRY Delete resource r35
+Succeeded in deleting this resource.
+.TRY Delete resource r36
+Succeeded in deleting this resource.
+.TRY Delete resource r37
+Succeeded in deleting this resource.
+.TRY Delete resource r38
+Succeeded in deleting this resource.
+.TRY Delete resource r39
+Succeeded in deleting this resource.
+.TRY Delete resource r40
+Succeeded in deleting this resource.
+.TRY Delete resource r41
+Succeeded in deleting this resource.
+.TRY Delete resource r42
+Succeeded in deleting this resource.
+.TRY Delete resource r43
+Succeeded in deleting this resource.
+.TRY Delete resource r44
+Succeeded in deleting this resource.
+.TRY Delete resource r45
+Succeeded in deleting this resource.
+.TRY Delete resource r46
+Succeeded in deleting this resource.
+.TRY Delete resource r47
+Succeeded in deleting this resource.
+.TRY Delete resource r48
+Succeeded in deleting this resource.
+.TRY Delete resource r49
+Succeeded in deleting this resource.
+.TRY Delete resource r50
+Succeeded in deleting this resource.
+.TRY Delete resource r51
+Succeeded in deleting this resource.
+.TRY Delete resource r52
+Succeeded in deleting this resource.
+.TRY Delete resource r53
+Succeeded in deleting this resource.
+.TRY Delete resource r54
+Succeeded in deleting this resource.
+.TRY Delete resource r55
+Succeeded in deleting this resource.
+.TRY Delete resource r56
+Succeeded in deleting this resource.
+.TRY Delete resource r57
+Succeeded in deleting this resource.
+.TRY Delete resource r58
+Succeeded in deleting this resource.
+.TRY Delete resource r59
+Succeeded in deleting this resource.
+.TRY Delete resource r60
+Succeeded in deleting this resource.
+.TRY Delete resource r61
+Succeeded in deleting this resource.
+.TRY Delete resource r62
+Succeeded in deleting this resource.
+.TRY Delete resource r63
+Succeeded in deleting this resource.
+.TRY Delete resource r64
+Succeeded in deleting this resource.
+.BG test line 9/job 1 finished (exit code: 0):
+==========test:9:1 start output==========
+.TRY Exec r1 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:1 end output==========
+.BG test line 9/job 2 finished (exit code: 0):
+==========test:9:2 start output==========
+.TRY Exec r2 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:2 end output==========
+.BG test line 9/job 3 finished (exit code: 0):
+==========test:9:3 start output==========
+.TRY Exec r3 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:3 end output==========
+.BG test line 9/job 4 finished (exit code: 0):
+==========test:9:4 start output==========
+.TRY Exec r4 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:4 end output==========
+.BG test line 9/job 5 finished (exit code: 0):
+==========test:9:5 start output==========
+.TRY Exec r5 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:5 end output==========
+.BG test line 9/job 6 finished (exit code: 0):
+==========test:9:6 start output==========
+.TRY Exec r6 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:6 end output==========
+.BG test line 9/job 7 finished (exit code: 0):
+==========test:9:7 start output==========
+.TRY Exec r7 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:7 end output==========
+.BG test line 9/job 8 finished (exit code: 0):
+==========test:9:8 start output==========
+.TRY Exec r8 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:8 end output==========
+.BG test line 9/job 9 finished (exit code: 0):
+==========test:9:9 start output==========
+.TRY Exec r9 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:9 end output==========
+.BG test line 9/job 10 finished (exit code: 0):
+==========test:9:10 start output==========
+.TRY Exec r10 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:10 end output==========
+.BG test line 9/job 11 finished (exit code: 0):
+==========test:9:11 start output==========
+.TRY Exec r11 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:11 end output==========
+.BG test line 9/job 12 finished (exit code: 0):
+==========test:9:12 start output==========
+.TRY Exec r12 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:12 end output==========
+.BG test line 9/job 13 finished (exit code: 0):
+==========test:9:13 start output==========
+.TRY Exec r13 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:13 end output==========
+.BG test line 9/job 14 finished (exit code: 0):
+==========test:9:14 start output==========
+.TRY Exec r14 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:14 end output==========
+.BG test line 9/job 15 finished (exit code: 0):
+==========test:9:15 start output==========
+.TRY Exec r15 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:15 end output==========
+.BG test line 9/job 16 finished (exit code: 0):
+==========test:9:16 start output==========
+.TRY Exec r16 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:16 end output==========
+.BG test line 9/job 17 finished (exit code: 0):
+==========test:9:17 start output==========
+.TRY Exec r17 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:17 end output==========
+.BG test line 9/job 18 finished (exit code: 0):
+==========test:9:18 start output==========
+.TRY Exec r18 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:18 end output==========
+.BG test line 9/job 19 finished (exit code: 0):
+==========test:9:19 start output==========
+.TRY Exec r19 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:19 end output==========
+.BG test line 9/job 20 finished (exit code: 0):
+==========test:9:20 start output==========
+.TRY Exec r20 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:20 end output==========
+.BG test line 9/job 21 finished (exit code: 0):
+==========test:9:21 start output==========
+.TRY Exec r21 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:21 end output==========
+.BG test line 9/job 22 finished (exit code: 0):
+==========test:9:22 start output==========
+.TRY Exec r22 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:22 end output==========
+.BG test line 9/job 23 finished (exit code: 0):
+==========test:9:23 start output==========
+.TRY Exec r23 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:23 end output==========
+.BG test line 9/job 24 finished (exit code: 0):
+==========test:9:24 start output==========
+.TRY Exec r24 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:24 end output==========
+.BG test line 9/job 25 finished (exit code: 0):
+==========test:9:25 start output==========
+.TRY Exec r25 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:25 end output==========
+.BG test line 9/job 26 finished (exit code: 0):
+==========test:9:26 start output==========
+.TRY Exec r26 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:26 end output==========
+.BG test line 9/job 27 finished (exit code: 0):
+==========test:9:27 start output==========
+.TRY Exec r27 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:27 end output==========
+.BG test line 9/job 28 finished (exit code: 0):
+==========test:9:28 start output==========
+.TRY Exec r28 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:28 end output==========
+.BG test line 9/job 29 finished (exit code: 0):
+==========test:9:29 start output==========
+.TRY Exec r29 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:29 end output==========
+.BG test line 9/job 30 finished (exit code: 0):
+==========test:9:30 start output==========
+.TRY Exec r30 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:30 end output==========
+.BG test line 9/job 31 finished (exit code: 0):
+==========test:9:31 start output==========
+.TRY Exec r31 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:31 end output==========
+.BG test line 9/job 32 finished (exit code: 0):
+==========test:9:32 start output==========
+.TRY Exec r32 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:32 end output==========
+.BG test line 9/job 33 finished (exit code: 0):
+==========test:9:33 start output==========
+.TRY Exec r33 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:33 end output==========
+.BG test line 9/job 34 finished (exit code: 0):
+==========test:9:34 start output==========
+.TRY Exec r34 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:34 end output==========
+.BG test line 9/job 35 finished (exit code: 0):
+==========test:9:35 start output==========
+.TRY Exec r35 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:35 end output==========
+.BG test line 9/job 36 finished (exit code: 0):
+==========test:9:36 start output==========
+.TRY Exec r36 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:36 end output==========
+.BG test line 9/job 37 finished (exit code: 0):
+==========test:9:37 start output==========
+.TRY Exec r37 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:37 end output==========
+.BG test line 9/job 38 finished (exit code: 0):
+==========test:9:38 start output==========
+.TRY Exec r38 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:38 end output==========
+.BG test line 9/job 39 finished (exit code: 0):
+==========test:9:39 start output==========
+.TRY Exec r39 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:39 end output==========
+.BG test line 9/job 40 finished (exit code: 0):
+==========test:9:40 start output==========
+.TRY Exec r40 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:40 end output==========
+.BG test line 9/job 41 finished (exit code: 0):
+==========test:9:41 start output==========
+.TRY Exec r41 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:41 end output==========
+.BG test line 9/job 42 finished (exit code: 0):
+==========test:9:42 start output==========
+.TRY Exec r42 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:42 end output==========
+.BG test line 9/job 43 finished (exit code: 0):
+==========test:9:43 start output==========
+.TRY Exec r43 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:43 end output==========
+.BG test line 9/job 44 finished (exit code: 0):
+==========test:9:44 start output==========
+.TRY Exec r44 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:44 end output==========
+.BG test line 9/job 45 finished (exit code: 0):
+==========test:9:45 start output==========
+.TRY Exec r45 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:45 end output==========
+.BG test line 9/job 46 finished (exit code: 0):
+==========test:9:46 start output==========
+.TRY Exec r46 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:46 end output==========
+.BG test line 9/job 47 finished (exit code: 0):
+==========test:9:47 start output==========
+.TRY Exec r47 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:47 end output==========
+.BG test line 9/job 48 finished (exit code: 0):
+==========test:9:48 start output==========
+.TRY Exec r48 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:48 end output==========
+.BG test line 9/job 49 finished (exit code: 0):
+==========test:9:49 start output==========
+.TRY Exec r49 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:49 end output==========
+.BG test line 9/job 50 finished (exit code: 0):
+==========test:9:50 start output==========
+.TRY Exec r50 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:50 end output==========
+.BG test line 9/job 51 finished (exit code: 0):
+==========test:9:51 start output==========
+.TRY Exec r51 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:51 end output==========
+.BG test line 9/job 52 finished (exit code: 0):
+==========test:9:52 start output==========
+.TRY Exec r52 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:52 end output==========
+.BG test line 9/job 53 finished (exit code: 0):
+==========test:9:53 start output==========
+.TRY Exec r53 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:53 end output==========
+.BG test line 9/job 54 finished (exit code: 0):
+==========test:9:54 start output==========
+.TRY Exec r54 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:54 end output==========
+.BG test line 9/job 55 finished (exit code: 0):
+==========test:9:55 start output==========
+.TRY Exec r55 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:55 end output==========
+.BG test line 9/job 56 finished (exit code: 0):
+==========test:9:56 start output==========
+.TRY Exec r56 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:56 end output==========
+.BG test line 9/job 57 finished (exit code: 0):
+==========test:9:57 start output==========
+.TRY Exec r57 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:57 end output==========
+.BG test line 9/job 58 finished (exit code: 0):
+==========test:9:58 start output==========
+.TRY Exec r58 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:58 end output==========
+.BG test line 9/job 59 finished (exit code: 0):
+==========test:9:59 start output==========
+.TRY Exec r59 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:59 end output==========
+.BG test line 9/job 60 finished (exit code: 0):
+==========test:9:60 start output==========
+.TRY Exec r60 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:60 end output==========
+.BG test line 9/job 61 finished (exit code: 0):
+==========test:9:61 start output==========
+.TRY Exec r61 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:61 end output==========
+.BG test line 9/job 62 finished (exit code: 0):
+==========test:9:62 start output==========
+.TRY Exec r62 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:62 end output==========
+.BG test line 9/job 63 finished (exit code: 0):
+==========test:9:63 start output==========
+.TRY Exec r63 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:63 end output==========
+.BG test line 9/job 64 finished (exit code: 0):
+==========test:9:64 start output==========
+.TRY Exec r64 op=start timeout=30000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:9:64 end output==========
+.BG test line 13/job 1 finished (exit code: 0):
+==========test:13:1 start output==========
+.TRY Exec r1 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:1 end output==========
+.BG test line 13/job 2 finished (exit code: 0):
+==========test:13:2 start output==========
+.TRY Exec r2 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:2 end output==========
+.BG test line 13/job 3 finished (exit code: 0):
+==========test:13:3 start output==========
+.TRY Exec r3 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:3 end output==========
+.BG test line 13/job 4 finished (exit code: 0):
+==========test:13:4 start output==========
+.TRY Exec r4 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:4 end output==========
+.BG test line 13/job 5 finished (exit code: 0):
+==========test:13:5 start output==========
+.TRY Exec r5 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:5 end output==========
+.BG test line 13/job 6 finished (exit code: 0):
+==========test:13:6 start output==========
+.TRY Exec r6 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:6 end output==========
+.BG test line 13/job 7 finished (exit code: 0):
+==========test:13:7 start output==========
+.TRY Exec r7 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:7 end output==========
+.BG test line 13/job 8 finished (exit code: 0):
+==========test:13:8 start output==========
+.TRY Exec r8 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:8 end output==========
+.BG test line 13/job 9 finished (exit code: 0):
+==========test:13:9 start output==========
+.TRY Exec r9 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:9 end output==========
+.BG test line 13/job 10 finished (exit code: 0):
+==========test:13:10 start output==========
+.TRY Exec r10 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:10 end output==========
+.BG test line 13/job 11 finished (exit code: 0):
+==========test:13:11 start output==========
+.TRY Exec r11 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:11 end output==========
+.BG test line 13/job 12 finished (exit code: 0):
+==========test:13:12 start output==========
+.TRY Exec r12 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:12 end output==========
+.BG test line 13/job 13 finished (exit code: 0):
+==========test:13:13 start output==========
+.TRY Exec r13 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:13 end output==========
+.BG test line 13/job 14 finished (exit code: 0):
+==========test:13:14 start output==========
+.TRY Exec r14 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:14 end output==========
+.BG test line 13/job 15 finished (exit code: 0):
+==========test:13:15 start output==========
+.TRY Exec r15 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:15 end output==========
+.BG test line 13/job 16 finished (exit code: 0):
+==========test:13:16 start output==========
+.TRY Exec r16 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:16 end output==========
+.BG test line 13/job 17 finished (exit code: 0):
+==========test:13:17 start output==========
+.TRY Exec r17 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:17 end output==========
+.BG test line 13/job 18 finished (exit code: 0):
+==========test:13:18 start output==========
+.TRY Exec r18 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:18 end output==========
+.BG test line 13/job 19 finished (exit code: 0):
+==========test:13:19 start output==========
+.TRY Exec r19 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:19 end output==========
+.BG test line 13/job 20 finished (exit code: 0):
+==========test:13:20 start output==========
+.TRY Exec r20 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:20 end output==========
+.BG test line 13/job 21 finished (exit code: 0):
+==========test:13:21 start output==========
+.TRY Exec r21 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:21 end output==========
+.BG test line 13/job 22 finished (exit code: 0):
+==========test:13:22 start output==========
+.TRY Exec r22 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:22 end output==========
+.BG test line 13/job 23 finished (exit code: 0):
+==========test:13:23 start output==========
+.TRY Exec r23 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:23 end output==========
+.BG test line 13/job 24 finished (exit code: 0):
+==========test:13:24 start output==========
+.TRY Exec r24 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:24 end output==========
+.BG test line 13/job 25 finished (exit code: 0):
+==========test:13:25 start output==========
+.TRY Exec r25 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:25 end output==========
+.BG test line 13/job 26 finished (exit code: 0):
+==========test:13:26 start output==========
+.TRY Exec r26 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:26 end output==========
+.BG test line 13/job 27 finished (exit code: 0):
+==========test:13:27 start output==========
+.TRY Exec r27 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:27 end output==========
+.BG test line 13/job 28 finished (exit code: 0):
+==========test:13:28 start output==========
+.TRY Exec r28 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:28 end output==========
+.BG test line 13/job 29 finished (exit code: 0):
+==========test:13:29 start output==========
+.TRY Exec r29 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:29 end output==========
+.BG test line 13/job 30 finished (exit code: 0):
+==========test:13:30 start output==========
+.TRY Exec r30 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:30 end output==========
+.BG test line 13/job 31 finished (exit code: 0):
+==========test:13:31 start output==========
+.TRY Exec r31 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:31 end output==========
+.BG test line 13/job 32 finished (exit code: 0):
+==========test:13:32 start output==========
+.TRY Exec r32 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:32 end output==========
+.BG test line 13/job 33 finished (exit code: 0):
+==========test:13:33 start output==========
+.TRY Exec r33 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:33 end output==========
+.BG test line 13/job 34 finished (exit code: 0):
+==========test:13:34 start output==========
+.TRY Exec r34 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:34 end output==========
+.BG test line 13/job 35 finished (exit code: 0):
+==========test:13:35 start output==========
+.TRY Exec r35 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:35 end output==========
+.BG test line 13/job 36 finished (exit code: 0):
+==========test:13:36 start output==========
+.TRY Exec r36 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:36 end output==========
+.BG test line 13/job 37 finished (exit code: 0):
+==========test:13:37 start output==========
+.TRY Exec r37 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:37 end output==========
+.BG test line 13/job 38 finished (exit code: 0):
+==========test:13:38 start output==========
+.TRY Exec r38 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:38 end output==========
+.BG test line 13/job 39 finished (exit code: 0):
+==========test:13:39 start output==========
+.TRY Exec r39 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:39 end output==========
+.BG test line 13/job 40 finished (exit code: 0):
+==========test:13:40 start output==========
+.TRY Exec r40 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:40 end output==========
+.BG test line 13/job 41 finished (exit code: 0):
+==========test:13:41 start output==========
+.TRY Exec r41 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:41 end output==========
+.BG test line 13/job 42 finished (exit code: 0):
+==========test:13:42 start output==========
+.TRY Exec r42 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:42 end output==========
+.BG test line 13/job 43 finished (exit code: 0):
+==========test:13:43 start output==========
+.TRY Exec r43 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:43 end output==========
+.BG test line 13/job 44 finished (exit code: 0):
+==========test:13:44 start output==========
+.TRY Exec r44 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:44 end output==========
+.BG test line 13/job 45 finished (exit code: 0):
+==========test:13:45 start output==========
+.TRY Exec r45 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:45 end output==========
+.BG test line 13/job 46 finished (exit code: 0):
+==========test:13:46 start output==========
+.TRY Exec r46 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:46 end output==========
+.BG test line 13/job 47 finished (exit code: 0):
+==========test:13:47 start output==========
+.TRY Exec r47 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:47 end output==========
+.BG test line 13/job 48 finished (exit code: 0):
+==========test:13:48 start output==========
+.TRY Exec r48 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:48 end output==========
+.BG test line 13/job 49 finished (exit code: 0):
+==========test:13:49 start output==========
+.TRY Exec r49 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:49 end output==========
+.BG test line 13/job 50 finished (exit code: 0):
+==========test:13:50 start output==========
+.TRY Exec r50 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:50 end output==========
+.BG test line 13/job 51 finished (exit code: 0):
+==========test:13:51 start output==========
+.TRY Exec r51 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:51 end output==========
+.BG test line 13/job 52 finished (exit code: 0):
+==========test:13:52 start output==========
+.TRY Exec r52 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:52 end output==========
+.BG test line 13/job 53 finished (exit code: 0):
+==========test:13:53 start output==========
+.TRY Exec r53 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:53 end output==========
+.BG test line 13/job 54 finished (exit code: 0):
+==========test:13:54 start output==========
+.TRY Exec r54 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:54 end output==========
+.BG test line 13/job 55 finished (exit code: 0):
+==========test:13:55 start output==========
+.TRY Exec r55 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:55 end output==========
+.BG test line 13/job 56 finished (exit code: 0):
+==========test:13:56 start output==========
+.TRY Exec r56 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:56 end output==========
+.BG test line 13/job 57 finished (exit code: 0):
+==========test:13:57 start output==========
+.TRY Exec r57 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:57 end output==========
+.BG test line 13/job 58 finished (exit code: 0):
+==========test:13:58 start output==========
+.TRY Exec r58 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:58 end output==========
+.BG test line 13/job 59 finished (exit code: 0):
+==========test:13:59 start output==========
+.TRY Exec r59 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:59 end output==========
+.BG test line 13/job 60 finished (exit code: 0):
+==========test:13:60 start output==========
+.TRY Exec r60 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:60 end output==========
+.BG test line 13/job 61 finished (exit code: 0):
+==========test:13:61 start output==========
+.TRY Exec r61 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:61 end output==========
+.BG test line 13/job 62 finished (exit code: 0):
+==========test:13:62 start output==========
+.TRY Exec r62 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:62 end output==========
+.BG test line 13/job 63 finished (exit code: 0):
+==========test:13:63 start output==========
+.TRY Exec r63 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:63 end output==========
+.BG test line 13/job 64 finished (exit code: 0):
+==========test:13:64 start output==========
+.TRY Exec r64 op=monitor timeout=30000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:13:64 end output==========
diff --git a/lrm/test/testcases/metadata b/lrm/test/testcases/metadata
new file mode 100644
index 0000000..d155757
--- /dev/null
+++ b/lrm/test/testcases/metadata
@@ -0,0 +1,29 @@
+# list various meta-data
+%setenv LANG=POSIX
+%extcheck sort
+classes
+%extcheck ra-list.sh
+types class=ocf
+%extcheck ra-list.sh
+types class=lsb
+%extcheck ra-list.sh
+types class=heartbeat
+#%extcheck ra-list.sh
+#types class=stonith
+%extcheck xmllint.sh many
+classmeta class=ocf
+%extcheck xmllint.sh many
+classmeta class=lsb
+%extcheck xmllint.sh many
+classmeta class=heartbeat
+#%extcheck xmllint.sh many
+#classmeta class=stonith
+%extcheck xmllint.sh
+meta class=ocf type=Dummy
+%extcheck xmllint.sh
+meta class=lsb type=lrmregtest
+%extcheck xmllint.sh
+meta class=heartbeat type=Dummy
+#%extcheck xmllint.sh
+#meta class=stonith type=ssh
+provider class=ocf type=IPaddr
diff --git a/lrm/test/testcases/metadata.exp b/lrm/test/testcases/metadata.exp
new file mode 100644
index 0000000..158bad2
--- /dev/null
+++ b/lrm/test/testcases/metadata.exp
@@ -0,0 +1,31 @@
+.SETENV LANG=POSIX
+.EXTCHECK sort
+.TRY List classes
+There are 4 RA classes supported:
+heartbeat
+lsb
+ocf
+stonith
+.EXTCHECK ra-list.sh
+.TRY List types class=ocf
+Cool. RA list passed.
+.EXTCHECK ra-list.sh
+.TRY List types class=lsb
+Cool. RA list passed.
+.EXTCHECK ra-list.sh
+.TRY List types class=heartbeat
+Cool. RA list passed.
+.EXTCHECK xmllint.sh many
+.TRY Meta-data class=ocf
+.EXTCHECK xmllint.sh many
+.TRY Meta-data class=lsb
+.EXTCHECK xmllint.sh many
+.TRY Meta-data class=heartbeat
+.EXTCHECK xmllint.sh
+.TRY Show meta-data class=ocf type=Dummy provider=heartbeat
+.EXTCHECK xmllint.sh
+.TRY Show meta-data class=lsb type=lrmregtest provider=heartbeat
+.EXTCHECK xmllint.sh
+.TRY Show meta-data class=heartbeat type=Dummy provider=heartbeat
+.TRY Show provider class=ocf type=IPaddr
+heartbeat
diff --git a/lrm/test/testcases/ra-list.sh b/lrm/test/testcases/ra-list.sh
new file mode 100755
index 0000000..38fb67b
--- /dev/null
+++ b/lrm/test/testcases/ra-list.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+awk '
+NR==1 {num=$3;next}
+{in_num++}
+END{
+ if( num!=in_num )
+ print "ERROR: A mismatch in number of reported RAs!";
+ else
+ print "Cool. RA list passed.";
+}
+'
diff --git a/lrm/test/testcases/rscexec b/lrm/test/testcases/rscexec
new file mode 100644
index 0000000..e118ae1
--- /dev/null
+++ b/lrm/test/testcases/rscexec
@@ -0,0 +1,48 @@
+list
+# ocf
+%setenv dflt_rsc=rscexec_rsc_r1
+add rsc=rscexec_rsc_r1 args="delay=0"
+list
+exec operation=start
+state
+exec operation=monitor
+exec operation=start
+exec operation=monitor
+exec operation=stop
+state
+exec operation=monitor
+exec operation=stop
+exec operation=monitor
+exec operation=meta-data
+del
+# lsb
+%setenv dflt_class=lsb dftl_rsc=rscexec_rsc_r1-lsb
+add
+exec operation=start
+state
+exec operation=monitor
+exec operation=start
+exec operation=monitor
+exec operation=stop
+state
+exec operation=monitor
+exec operation=stop
+exec operation=monitor
+exec operation=meta-data
+del
+%stop
+# stonith
+%setenv dflt_class=stonith dftl_rsc=rscexec_rsc_r1-stonith
+add type=null args="hostlist=node1"
+exec operation=start
+state
+exec operation=monitor
+exec operation=start
+exec operation=monitor
+exec operation=stop
+state
+exec operation=monitor
+exec operation=stop
+exec operation=monitor
+exec operation=meta-data
+del
diff --git a/lrm/test/testcases/rscexec.exp b/lrm/test/testcases/rscexec.exp
new file mode 100644
index 0000000..71bdc2e
--- /dev/null
+++ b/lrm/test/testcases/rscexec.exp
@@ -0,0 +1,117 @@
+.TRY List resources
+Currently no resources are managed by LRM.
+.SETENV dflt_rsc=rscexec_rsc_r1
+.TRY Add resource rscexec_rsc_r1 class=ocf type=lrmregtest provider=heartbeat args=delay=0
+Succeeded in adding this resource.
+.TRY List resources
+
+Resource ID:rscexec_rsc_r1
+Resource agent class:ocf
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+Resource agent parameters:delay=0
+.TRY Exec rscexec_rsc_r1 op=start timeout=1000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+.TRY Show state rscexec_rsc_r1
+resource state:LRM_RSC_IDLE
+The resource 1 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=0
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=start timeout=1000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=stop timeout=1000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Show state rscexec_rsc_r1
+resource state:LRM_RSC_IDLE
+The resource 3 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=0
+ operation 'monitor' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=0
+ operation 'stop' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=0
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=7): [null]
+
+.TRY Exec rscexec_rsc_r1 op=stop timeout=1000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=7): [null]
+
+.TRY Exec rscexec_rsc_r1 op=meta-data timeout=1000 interval=0 target=EVERYTIME args=
+> meta-data succeed (status=0,rc=0): [null]
+
+.TRY Delete resource rscexec_rsc_r1
+Succeeded in deleting this resource.
+.SETENV dflt_class=lsb dftl_rsc=rscexec_rsc_r1-lsb
+.TRY Add resource rscexec_rsc_r1 class=lsb type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY Exec rscexec_rsc_r1 op=start timeout=1000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+.TRY Show state rscexec_rsc_r1
+resource state:LRM_RSC_IDLE
+The resource 1 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters:
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=start timeout=1000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=stop timeout=1000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Show state rscexec_rsc_r1
+resource state:LRM_RSC_IDLE
+The resource 3 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters:
+ operation 'monitor' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters:
+ operation 'stop' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=1000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters:
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=7): [null]
+
+.TRY Exec rscexec_rsc_r1 op=stop timeout=1000 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Exec rscexec_rsc_r1 op=monitor timeout=1000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=7): [null]
+
+.TRY Exec rscexec_rsc_r1 op=meta-data timeout=1000 interval=0 target=EVERYTIME args=
+> meta-data succeed (status=0,rc=0): [null]
+
+.TRY Delete resource rscexec_rsc_r1
+Succeeded in deleting this resource.
diff --git a/lrm/test/testcases/rscmgmt b/lrm/test/testcases/rscmgmt
new file mode 100644
index 0000000..8d745d3
--- /dev/null
+++ b/lrm/test/testcases/rscmgmt
@@ -0,0 +1,29 @@
+list
+# add/remove resources
+#
+add rsc=r1
+info rsc=r1
+list
+del rsc=r1
+%setenv dflt_class=lsb dflt_type=lrmregtest
+list
+add rsc=r1
+list
+del rsc=r1
+list
+#
+# a bit of mix
+#
+%setenv dflt_class=ocf
+add rsc=r1
+add rsc=r1 class=lsb type=lrmregtest
+add rsc=r1
+del rsc=r1
+add rsc=r1 class=lsb type=lrmregtest
+list
+add rsc=r2
+list
+del rsc=r1
+del rsc=r2
+list
+del rsc=r1
diff --git a/lrm/test/testcases/rscmgmt.exp b/lrm/test/testcases/rscmgmt.exp
new file mode 100644
index 0000000..3a5c4bf
--- /dev/null
+++ b/lrm/test/testcases/rscmgmt.exp
@@ -0,0 +1,74 @@
+.TRY List resources
+Currently no resources are managed by LRM.
+.TRY Add resource r1 class=ocf type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY Show info r1
+
+Resource ID:r1
+Resource agent class:ocf
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+.TRY List resources
+
+Resource ID:r1
+Resource agent class:ocf
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.SETENV dflt_class=lsb dflt_type=lrmregtest
+.TRY List resources
+Currently no resources are managed by LRM.
+.TRY Add resource r1 class=lsb type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY List resources
+
+Resource ID:r1
+Resource agent class:lsb
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.TRY List resources
+Currently no resources are managed by LRM.
+.SETENV dflt_class=ocf
+.TRY Add resource r1 class=ocf type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY Add resource r1 class=lsb type=lrmregtest provider=heartbeat args=
+ERROR: lrm_add_rsc(): got a return code HA_FAIL from a reply message of addrsc with function get_ret_from_msg.
+Failed to add this resource.
+.TRY Add resource r1 class=ocf type=lrmregtest provider=heartbeat args=
+ERROR: lrm_add_rsc(): got a return code HA_FAIL from a reply message of addrsc with function get_ret_from_msg.
+Failed to add this resource.
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.TRY Add resource r1 class=lsb type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY List resources
+
+Resource ID:r1
+Resource agent class:lsb
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+.TRY Add resource r2 class=ocf type=lrmregtest provider=heartbeat args=
+Succeeded in adding this resource.
+.TRY List resources
+
+Resource ID:r2
+Resource agent class:ocf
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+
+Resource ID:r1
+Resource agent class:lsb
+Resource agent type:lrmregtest
+Resource agent provider:heartbeat
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.TRY Delete resource r2
+Succeeded in deleting this resource.
+.TRY List resources
+Currently no resources are managed by LRM.
+.TRY Delete resource r1
+ERROR: lrm_delete_rsc(): got a return code HA_FAIL from a reply message of delrsc with function get_ret_from_msg.
+Failed to delete this resource.
diff --git a/lrm/test/testcases/rscmgmt.log_filter b/lrm/test/testcases/rscmgmt.log_filter
new file mode 100755
index 0000000..34debc5
--- /dev/null
+++ b/lrm/test/testcases/rscmgmt.log_filter
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+awk '
+n<2 && /ERROR: on_msg_add_rsc: same id resource exists./ {n++; next}
+m<1 && /ERROR: on_msg_del_rsc: no rsc with id/ {m++; next}
+{print}
+END{
+ if( n!=2 )
+ print "ERROR: missed on_msg_add_rsc errors";
+ if( m!=1 )
+ print "ERROR: missed on_msg_del_rsc errors";
+}
+'
diff --git a/lrm/test/testcases/serialize b/lrm/test/testcases/serialize
new file mode 100644
index 0000000..cad96b3
--- /dev/null
+++ b/lrm/test/testcases/serialize
@@ -0,0 +1,33 @@
+list
+# allow for a delay of 2 seconds
+%setenv dflt_timeout=2500
+add rsc=r1 args="delay=2"
+#
+# we run the next three ops in the background
+# in case ops are not serialized, the lrmregtest RA should complain
+#
+%bg 2
+exec operation=start
+# insert sleeps to make sure that the operations are started in
+# the order given here
+%sleep 1
+# set timeouts high enough so that no op fails
+exec operation=start timeout=3000
+%sleep 1
+%bgrepeat 4
+exec operation=monitor timeout=11000
+%sleep 11
+state
+exec operation=stop
+state
+del rsc=r1
+#
+#
+#
+%setenv dflt_rsc=r2 dflt_timeout=10500
+add rsc=r2 args="ignore_TERM=1 delay=9"
+exec operation=start
+%bg
+exec operation=monitor timeout=500
+exec operation=monitor
+del rsc=r2
diff --git a/lrm/test/testcases/serialize.exp b/lrm/test/testcases/serialize.exp
new file mode 100644
index 0000000..b290c95
--- /dev/null
+++ b/lrm/test/testcases/serialize.exp
@@ -0,0 +1,100 @@
+.TRY List resources
+Currently no resources are managed by LRM.
+.SETENV dflt_timeout=2500
+.TRY Add resource r1 class=ocf type=lrmregtest provider=heartbeat args=delay=2
+Succeeded in adding this resource.
+.BG 2
+.BG test line 10/job 1 runs in background
+.SLEEP 1
+.BG test line 15/job 2 runs in background
+.SLEEP 1
+.BGREPEAT 4
+.BG test line 18/job 1 runs in background
+.BG test line 18/job 2 runs in background
+.BG test line 18/job 3 runs in background
+.BG test line 18/job 4 runs in background
+.SLEEP 11
+.TRY Show state r1
+resource state:LRM_RSC_IDLE
+The resource 2 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=3000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=2
+ operation 'monitor' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=11000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=2
+.TRY Exec r1 op=stop timeout=2500 interval=0 target=EVERYTIME args=
+> stop succeed (status=0,rc=0): [null]
+
+.TRY Show state r1
+resource state:LRM_RSC_IDLE
+The resource 3 operations' information:
+ operation 'start' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=3000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=2
+ operation 'monitor' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=11000, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=2
+ operation 'stop' [call_id=(removed)]:
+ start_delay=0, interval=0, timeout=2500, app_name=lrmadmin
+ rc=0 (ok), op_status=0 (succeed)
+ parameters: delay=2
+.TRY Delete resource r1
+Succeeded in deleting this resource.
+.SETENV dflt_rsc=r2 dflt_timeout=10500
+.TRY Add resource r2 class=ocf type=lrmregtest provider=heartbeat args=ignore_TERM=1 delay=9
+Succeeded in adding this resource.
+.TRY Exec r2 op=start timeout=10500 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+.BG
+.BG test line 31/job 1 runs in background
+.TRY Exec r2 op=monitor timeout=10500 interval=0 target=EVERYTIME args=
+ERROR: This operation has timed out - no result from lrmd.
+.TRY Delete resource r2
+Succeeded in deleting this resource.
+.BG test line 10/job 1 finished (exit code: 0):
+==========test:10:1 start output==========
+.TRY Exec r1 op=start timeout=2500 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:10:1 end output==========
+.BG test line 15/job 2 finished (exit code: 0):
+==========test:15:2 start output==========
+.TRY Exec r1 op=start timeout=3000 interval=0 target=EVERYTIME args=
+> start succeed (status=0,rc=0): [null]
+
+==========test:15:2 end output==========
+.BG test line 18/job 1 finished (exit code: 0):
+==========test:18:1 start output==========
+.TRY Exec r1 op=monitor timeout=11000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:18:1 end output==========
+.BG test line 18/job 2 finished (exit code: 0):
+==========test:18:2 start output==========
+.TRY Exec r1 op=monitor timeout=11000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:18:2 end output==========
+.BG test line 18/job 3 finished (exit code: 0):
+==========test:18:3 start output==========
+.TRY Exec r1 op=monitor timeout=11000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:18:3 end output==========
+.BG test line 18/job 4 finished (exit code: 0):
+==========test:18:4 start output==========
+.TRY Exec r1 op=monitor timeout=11000 interval=0 target=EVERYTIME args=
+> monitor succeed (status=0,rc=0): [null]
+
+==========test:18:4 end output==========
+.BG test line 31/job 1 finished (exit code: 0):
+==========test:31:1 start output==========
+.TRY Exec r2 op=monitor timeout=500 interval=0 target=EVERYTIME args=
+ERROR: This operation has timed out - no result from lrmd.
+==========test:31:1 end output==========
diff --git a/lrm/test/testcases/stonith b/lrm/test/testcases/stonith
new file mode 100644
index 0000000..f21cf18
--- /dev/null
+++ b/lrm/test/testcases/stonith
@@ -0,0 +1,2 @@
+%extcheck xmllint.sh many
+%shell stonith -L | while read p; do echo $p:heartbeat; stonith -m -t $p; done
diff --git a/lrm/test/testcases/stonith.exp b/lrm/test/testcases/stonith.exp
new file mode 100644
index 0000000..f9f1042
--- /dev/null
+++ b/lrm/test/testcases/stonith.exp
@@ -0,0 +1,2 @@
+.EXTCHECK xmllint.sh many
+.SHELL stonith -L | while read p; do echo $p:heartbeat; stonith -m -t $p; done
diff --git a/lrm/test/testcases/xmllint.sh b/lrm/test/testcases/xmllint.sh
new file mode 100755
index 0000000..f61288c
--- /dev/null
+++ b/lrm/test/testcases/xmllint.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+gawk -v many="$1" '
+BEGIN{XMLLINT="xmllint --noout -";}
+function chkoutput(ra) {
+ if( ra=="" ) return;
+ if( close(XMLLINT) ) # we need gawk for this
+ print "xmllint reported error in RA:",ra;
+}
+many=="many" && /^[a-zA-Z][^:]*:[a-zA-Z0-9]+$/ {
+ chkoutput(ra);
+ ra=$0;
+ next;
+}
+{ print | XMLLINT }
+END{
+ if( many!="many" )
+ chkoutput("noname");
+}
+'