]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: DejaGNU libzebra
authorDavid Lamparter <equinox@opensourcerouting.org>
Thu, 24 Jan 2013 00:39:14 +0000 (01:39 +0100)
committerDavid Lamparter <equinox@diac24.net>
Sun, 14 Apr 2013 14:01:19 +0000 (16:01 +0200)
Wrap the few libzebra test programs we have up for DejaGNU.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
configure.ac
tests/Makefile.am
tests/config/unix.exp
tests/lib/libzebra.exp [new file with mode: 0644]
tests/libzebra.tests/Makefile.am [new file with mode: 0644]
tests/libzebra.tests/tabletest.exp [new file with mode: 0644]
tests/libzebra.tests/teststream.exp [new file with mode: 0644]

index 32a59d97e2fc11e1b77bdcd9c490d9905d38e053..ff7a4d5478d5531ccd0a43dad72ddd47801cedaa 100755 (executable)
@@ -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 
index 153922b9f938ec34ade0f9fd96df1a4f698afff3..93c06b031d5a4dea8086916652a98caba824326d 100644 (file)
@@ -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
index 25ea97f4c529a9261cac5c6dc75e412add87d05e..b41f072cc9148e7a90952f03bd7ec7656bba64cf 100644 (file)
@@ -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 (file)
index 0000000..e69de29
diff --git a/tests/libzebra.tests/Makefile.am b/tests/libzebra.tests/Makefile.am
new file mode 100644 (file)
index 0000000..0d29e28
--- /dev/null
@@ -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 (file)
index 0000000..5838d4f
--- /dev/null
@@ -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 (file)
index 0000000..ca602e3
--- /dev/null
@@ -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"