From c69905b673812ce6ec2a12960727a27b9b8d6426 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Thu, 24 Jan 2013 01:39:14 +0100 Subject: tests: DejaGNU libzebra Wrap the few libzebra test programs we have up for DejaGNU. Signed-off-by: David Lamparter --- configure.ac | 1 + tests/Makefile.am | 7 +++++-- tests/config/unix.exp | 18 ++++++++++++++++++ tests/lib/libzebra.exp | 0 tests/libzebra.tests/Makefile.am | 2 ++ tests/libzebra.tests/tabletest.exp | 9 +++++++++ tests/libzebra.tests/teststream.exp | 28 ++++++++++++++++++++++++++++ 7 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 32a59d97..ff7a4d54 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 153922b9..93c06b03 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 25ea97f4..b41f072c 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 00000000..e69de29b diff --git a/tests/libzebra.tests/Makefile.am b/tests/libzebra.tests/Makefile.am new file mode 100644 index 00000000..0d29e287 --- /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 00000000..5838d4fc --- /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 00000000..ca602e30 --- /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" -- cgit v1.2.1