[quagga-dev 10279] [PATCH 3/3] tests: DejaGNU libzebra

David Lamparter equinox at opensourcerouting.org
Tue Feb 26 18:04:44 GMT 2013


Wrap the few libzebra test programs we have up for DejaGNU.

Signed-off-by: David Lamparter <equinox at opensourcerouting.org>
---
 configure.ac                        |  1 +
 tests/Makefile.am                   |  7 +++++--
 tests/config/unix.exp               | 18 ++++++++++++++++++
 tests/libzebra.tests/Makefile.am    |  2 ++
 tests/libzebra.tests/tabletest.exp  |  9 +++++++++
 tests/libzebra.tests/teststream.exp | 28 ++++++++++++++++++++++++++++
 6 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 tests/lib/libzebra.exp
 create mode 100644 tests/libzebra.tests/Makefile.am
 create mode 100644 tests/libzebra.tests/tabletest.exp
 create mode 100644 tests/libzebra.tests/teststream.exp

diff --git a/configure.ac b/configure.ac
index 32a59d9..ff7a4d5 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1705,6 +1705,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
 	  ospf6d/Makefile isisd/Makefile babeld/Makefile vtysh/Makefile
 	  doc/Makefile ospfclient/Makefile tests/Makefile m4/Makefile
 	  tests/bgpd.tests/Makefile
+	  tests/libzebra.tests/Makefile
 	  redhat/Makefile
 	  pkgsrc/Makefile
 	  redhat/quagga.spec 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 153922b..93c06b0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,12 +1,15 @@
 AUTOMAKE_OPTIONS    = dejagnu
 export DEJAGNU
-DEJATOOL =
+DEJATOOL = libzebra
 
-SUBDIRS = bgpd.tests
+SUBDIRS = \
+	bgpd.tests \
+	libzebra.tests
 
 EXTRA_DIST = \
 	config/unix.exp \
 	lib/bgpd.exp \
+	lib/libzebra.exp \
 	global-conf.exp
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
diff --git a/tests/config/unix.exp b/tests/config/unix.exp
index 25ea97f..b41f072 100644
--- a/tests/config/unix.exp
+++ b/tests/config/unix.exp
@@ -20,6 +20,24 @@ if { $i >= 0 } {
 send_user "IPv6 enabled: $have_ipv6\n"
 set xfail 0
 
+proc onesimple { test_name match } {
+	global verbose
+	global aborted
+	global testprefix
+	if { $aborted > 0 } {
+		untested "$testprefix$test_name"
+		return
+	}
+	if { $verbose > 0 } {
+		send_user "$testprefix$test_name$note\n"
+	}
+	expect {
+		"$match"	{ pass "$testprefix$test_name"; }
+		eof		{ fail "$testprefix$test_name"; set aborted 1; }
+		timeout		{ unresolved "$testprefix$test_name"; set aborted 1; }
+	}
+}
+
 proc onetest { test_name note start } {
 	global aborted
 	global testprefix
diff --git a/tests/lib/libzebra.exp b/tests/lib/libzebra.exp
new file mode 100644
index 0000000..e69de29
diff --git a/tests/libzebra.tests/Makefile.am b/tests/libzebra.tests/Makefile.am
new file mode 100644
index 0000000..0d29e28
--- /dev/null
+++ b/tests/libzebra.tests/Makefile.am
@@ -0,0 +1,2 @@
+EXTRA_DIST = \
+	tabletest.exp
diff --git a/tests/libzebra.tests/tabletest.exp b/tests/libzebra.tests/tabletest.exp
new file mode 100644
index 0000000..5838d4f
--- /dev/null
+++ b/tests/libzebra.tests/tabletest.exp
@@ -0,0 +1,9 @@
+set timeout 10
+set testprefix "tabletest "
+set aborted 0
+
+spawn "./tabletest"
+
+for {set i 0} {$i <  6} {incr i 1} { onesimple "cmp $i" "Verifying cmp"; }
+for {set i 0} {$i < 11} {incr i 1} { onesimple "succ $i" "Verifying successor"; }
+onesimple "pause" "Verified pausing"
diff --git a/tests/libzebra.tests/teststream.exp b/tests/libzebra.tests/teststream.exp
new file mode 100644
index 0000000..ca602e3
--- /dev/null
+++ b/tests/libzebra.tests/teststream.exp
@@ -0,0 +1,28 @@
+set timeout 10
+spawn "./teststream"
+
+expect {
+	"endp: 15, readable: 15, writeable: 1009" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"0xef 0xbe 0xef 0xde 0xad 0xbe 0xef 0xde 0xad 0xbe 0xef 0xde 0xad 0xbe 0xef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"endp: 15, readable: 15, writeable: 0" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"0xef 0xbe 0xef 0xde 0xad 0xbe 0xef 0xde 0xad 0xbe 0xef 0xde 0xad 0xbe 0xef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"c: 0xef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"w: 0xbeef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"l: 0xdeadbeef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+expect {
+	"q: 0xdeadbeefdeadbeef" { }
+	eof { fail "teststream"; exit; } timeout { fail "teststream"; exit; } }
+pass "teststream"
-- 
1.7.12.4





More information about the Quagga-dev mailing list