mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 14:42:06 +00:00
tests: DejaGNU bgpd
this just wraps the existing test programs in expect wrappers that make their results usable to DejaGNU. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
f281ab9752
commit
5bb7e4d12b
@ -1704,6 +1704,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
|
||||
ripngd/Makefile bgpd/Makefile ospfd/Makefile watchquagga/Makefile
|
||||
ospf6d/Makefile isisd/Makefile babeld/Makefile vtysh/Makefile
|
||||
doc/Makefile ospfclient/Makefile tests/Makefile m4/Makefile
|
||||
tests/bgpd.tests/Makefile
|
||||
redhat/Makefile
|
||||
pkgsrc/Makefile
|
||||
redhat/quagga.spec
|
||||
|
@ -1,14 +1,14 @@
|
||||
AUTOMAKE_OPTIONS = dejagnu
|
||||
export DEJAGNU
|
||||
DEJATOOL =
|
||||
|
||||
SUBDIRS =
|
||||
SUBDIRS = bgpd.tests
|
||||
|
||||
EXTRA_DIST = \
|
||||
config/unix.exp \
|
||||
lib/bgpd.exp \
|
||||
global-conf.exp
|
||||
|
||||
DEJATOOL =
|
||||
|
||||
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
|
||||
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
|
||||
|
||||
@ -17,6 +17,7 @@ AM_LDFLAGS = $(PILDFLAGS)
|
||||
|
||||
if BGPD
|
||||
TESTS_BGPD = aspathtest testbgpcap ecommtest testbgpmpattr testbgpmpath
|
||||
DEJATOOL += bgpd
|
||||
else
|
||||
TESTS_BGPD =
|
||||
endif
|
||||
|
7
tests/bgpd.tests/Makefile.am
Normal file
7
tests/bgpd.tests/Makefile.am
Normal file
@ -0,0 +1,7 @@
|
||||
EXTRA_DIST = \
|
||||
aspathtest.exp \
|
||||
ecommtest.exp \
|
||||
testbgpcap.exp \
|
||||
testbgpmpath.exp \
|
||||
testbgpmpattr.exp
|
||||
|
76
tests/bgpd.tests/aspathtest.exp
Normal file
76
tests/bgpd.tests/aspathtest.exp
Normal file
@ -0,0 +1,76 @@
|
||||
set timeout 10
|
||||
set testprefix "aspathtest "
|
||||
set aborted 0
|
||||
set color 1
|
||||
|
||||
spawn "./aspathtest"
|
||||
|
||||
# proc onetest { test_name note start } {
|
||||
# proc headerline { line } {
|
||||
|
||||
set parserno 0
|
||||
proc parsertest { test_name } {
|
||||
global parserno
|
||||
headerline "test $parserno"
|
||||
onetest "parse $test_name" " ($parserno)" "$test_name:"
|
||||
onetest "parse $test_name +empty_prepend" " (#$parserno)" "empty prepend $test_name:"
|
||||
incr parserno 1
|
||||
}
|
||||
set attrno 0
|
||||
proc attrtest { test_name } {
|
||||
global attrno
|
||||
headerline "aspath_attr test $attrno"
|
||||
onetest "attr $test_name" " (#$attrno)" "$test_name"
|
||||
incr attrno 1
|
||||
}
|
||||
|
||||
|
||||
parsertest "seq1"
|
||||
parsertest "seq2"
|
||||
parsertest "seq3"
|
||||
parsertest "seqset"
|
||||
parsertest "seqset2"
|
||||
parsertest "multi"
|
||||
parsertest "confed"
|
||||
parsertest "confed2"
|
||||
parsertest "confset"
|
||||
parsertest "confmulti"
|
||||
parsertest "seq4"
|
||||
parsertest "tripleseq1"
|
||||
parsertest "someprivate"
|
||||
parsertest "allprivate"
|
||||
parsertest "long"
|
||||
parsertest "seq1extra"
|
||||
parsertest "empty"
|
||||
parsertest "redundantset"
|
||||
parsertest "reconcile_lead_asp"
|
||||
parsertest "reconcile_new_asp"
|
||||
parsertest "reconcile_confed"
|
||||
parsertest "reconcile_start_trans"
|
||||
parsertest "reconcile_start_trans4"
|
||||
parsertest "reconcile_start_trans_error"
|
||||
parsertest "redundantset2"
|
||||
parsertest "zero-size overflow"
|
||||
parsertest "zero-size overflow + valid segment"
|
||||
parsertest "invalid segment type"
|
||||
|
||||
for {set i 0} {$i < 10} {incr i 1} { onetest "prepend $i" "" "prepend test $i"; }
|
||||
for {set i 0} {$i < 5} {incr i 1} { onetest "aggregate $i" "" "aggregate test $i"; }
|
||||
for {set i 0} {$i < 5} {incr i 1} { onetest "reconcile $i" "" "reconcile test $i"; }
|
||||
for {set i 0} {$i < 22} {incr i 1} { onetest "compare $i" "" "left cmp "; }
|
||||
|
||||
onetest "empty_get" "" "empty_get_test"
|
||||
attrtest "basic test"
|
||||
attrtest "length too short"
|
||||
attrtest "length too long"
|
||||
attrtest "incorrect flag"
|
||||
attrtest "as4_path, with as2 format data"
|
||||
attrtest "as4, with incorrect attr length"
|
||||
attrtest "basic 4-byte as-path"
|
||||
attrtest "4b AS_PATH: too short"
|
||||
attrtest "4b AS_PATH: too long"
|
||||
attrtest "4b AS_PATH: too long2"
|
||||
attrtest "4b AS_PATH: bad flags"
|
||||
attrtest "4b AS4_PATH w/o AS_PATH"
|
||||
attrtest "4b AS4_PATH: confed"
|
||||
|
13
tests/bgpd.tests/ecommtest.exp
Normal file
13
tests/bgpd.tests/ecommtest.exp
Normal file
@ -0,0 +1,13 @@
|
||||
set timeout 10
|
||||
set testprefix "ecommtest "
|
||||
set aborted 0
|
||||
set color 0
|
||||
|
||||
spawn "./ecommtest"
|
||||
|
||||
# proc simpletest { start } {
|
||||
|
||||
simpletest "ipaddr"
|
||||
simpletest "ipaddr-so"
|
||||
simpletest "asn"
|
||||
simpletest "asn4"
|
51
tests/bgpd.tests/testbgpcap.exp
Normal file
51
tests/bgpd.tests/testbgpcap.exp
Normal file
@ -0,0 +1,51 @@
|
||||
set timeout 10
|
||||
set testprefix "testbgpcap "
|
||||
set aborted 0
|
||||
set color 1
|
||||
|
||||
spawn "./testbgpcap"
|
||||
|
||||
# proc simpletest { start } {
|
||||
|
||||
simpletest "MP4: MP IP/Uni"
|
||||
simpletest_nov6 "MPv6: MP IPv6/Uni"
|
||||
simpletest "MP2: MP IP/Multicast"
|
||||
simpletest_nov6 "MP3: MP IP6/MPLS-labeled VPN"
|
||||
simpletest_nov6 "MP5: MP IP6/MPLS-VPN"
|
||||
simpletest "MP6: MP IP4/MPLS-laveled VPN"
|
||||
simpletest "MP8: MP unknown AFI/SAFI"
|
||||
simpletest "MP-short: MP IP4/Unicast, length too short (< minimum)"
|
||||
simpletest "MP-overflow: MP IP4/Unicast, length too long"
|
||||
simpletest "caphdr: capability header, and no more"
|
||||
simpletest "nodata: header, no data but length says there is"
|
||||
simpletest "padded: valid, with padding"
|
||||
simpletest "minsize: violates minsize requirement"
|
||||
simpletest "ORF: ORF, simple, single entry, single tuple"
|
||||
simpletest "ORF-many: ORF, multi entry/tuple"
|
||||
simpletest "ORFlo: ORF, multi entry/tuple, hdr length too short"
|
||||
simpletest "ORFlu: ORF, multi entry/tuple, length too long"
|
||||
simpletest "ORFnu: ORF, multi entry/tuple, entry number too long"
|
||||
simpletest "ORFno: ORF, multi entry/tuple, entry number too short"
|
||||
simpletest "ORFpad: ORF, multi entry/tuple, padded to align"
|
||||
simpletest "AS4: AS4 capability"
|
||||
simpletest "GR: GR capability"
|
||||
simpletest "GR-short: GR capability, but header length too short"
|
||||
simpletest "GR-long: GR capability, but header length too long"
|
||||
simpletest "GR-trunc: GR capability, but truncated"
|
||||
simpletest "GR-empty: GR capability, but empty."
|
||||
simpletest "MP-empty: MP capability, but empty."
|
||||
simpletest "ORF-empty: ORF capability, but empty."
|
||||
simpletest "AS4-empty: AS4 capability, but empty."
|
||||
simpletest "dyn-empty: Dynamic capability, but empty."
|
||||
simpletest "dyn-old: Dynamic capability (deprecated version)"
|
||||
simpletest "Cap-singlets: One capability per Optional-Param"
|
||||
simpletest "Cap-series: Series of capability, one Optional-Param"
|
||||
simpletest "AS4more: AS4 capability after other caps (singlets)"
|
||||
simpletest "AS4series: AS4 capability, in series of capabilities"
|
||||
simpletest "AS4real: AS4 capability, in series of capabilities"
|
||||
simpletest "AS4real2: AS4 capability, in series of capabilities"
|
||||
simpletest "DynCap: Dynamic Capability Message, IP/Multicast"
|
||||
simpletest "DynCapLong: Dynamic Capability Message, IP/Multicast, truncated"
|
||||
simpletest "DynCapPadded: Dynamic Capability Message, IP/Multicast, padded"
|
||||
simpletest "DynCapMPCpadded: Dynamic Capability Message, IP/Multicast, cap data padded"
|
||||
simpletest "DynCapMPCoverflow: Dynamic Capability Message, IP/Multicast, cap data != length"
|
12
tests/bgpd.tests/testbgpmpath.exp
Normal file
12
tests/bgpd.tests/testbgpmpath.exp
Normal file
@ -0,0 +1,12 @@
|
||||
set timeout 10
|
||||
set testprefix "testbgpmpath "
|
||||
set aborted 0
|
||||
set color 1
|
||||
|
||||
spawn "./testbgpmpath"
|
||||
|
||||
# proc simpletest { start } {
|
||||
|
||||
simpletest "bgp maximum-paths config"
|
||||
simpletest "bgp_mp_list"
|
||||
simpletest "bgp_info_mpath_update"
|
31
tests/bgpd.tests/testbgpmpattr.exp
Normal file
31
tests/bgpd.tests/testbgpmpattr.exp
Normal file
@ -0,0 +1,31 @@
|
||||
set timeout 10
|
||||
set testprefix "testbgpmpattr "
|
||||
set aborted 0
|
||||
set color 1
|
||||
|
||||
spawn "./testbgpmpattr"
|
||||
|
||||
# proc simpletest { start } {
|
||||
|
||||
simpletest_nov6 "IPv6: IPV6 MP Reach, global nexthop, 1 NLRI"
|
||||
simpletest_nov6 "IPv6-2: IPV6 MP Reach, global nexthop, 2 NLRIs"
|
||||
simpletest_nov6 "IPv6-default: IPV6 MP Reach, global nexthop, 2 NLRIs + default"
|
||||
simpletest_nov6 "IPv6-lnh: IPV6 MP Reach, global+local nexthops, 2 NLRIs + default"
|
||||
simpletest "IPv6-nhlen: IPV6 MP Reach, inappropriate nexthop length"
|
||||
simpletest "IPv6-nhlen2: IPV6 MP Reach, invalid nexthop length"
|
||||
simpletest "IPv6-nhlen3: IPV6 MP Reach, nexthop length overflow"
|
||||
simpletest "IPv6-nhlen4: IPV6 MP Reach, nexthop length short"
|
||||
simpletest "IPv6-nlri: IPV6 MP Reach, NLRI bitlen overflow"
|
||||
simpletest "IPv4: IPv4 MP Reach, 2 NLRIs + default"
|
||||
simpletest "IPv4-nhlen: IPv4 MP Reach, nexthop lenth overflow"
|
||||
simpletest "IPv4-nlrilen: IPv4 MP Reach, nlri lenth overflow"
|
||||
simpletest "IPv4-MLVPN: IPv4/MPLS-labeled VPN MP Reach, RD, Nexthop, 3 NLRIs"
|
||||
simpletest "IPv6-bug: IPv6, global nexthop, 1 default NLRI"
|
||||
simpletest_nov6 "IPv6-unreach: IPV6 MP Unreach, 1 NLRI"
|
||||
simpletest_nov6 "IPv6-unreach2: IPV6 MP Unreach, 2 NLRIs"
|
||||
simpletest_nov6 "IPv6-unreach-default: IPV6 MP Unreach, 2 NLRIs + default"
|
||||
simpletest "IPv6-unreach-nlri: IPV6 MP Unreach, NLRI bitlen overflow"
|
||||
simpletest "IPv4-unreach: IPv4 MP Unreach, 2 NLRIs + default"
|
||||
simpletest "IPv4-unreach-nlrilen: IPv4 MP Unreach, nlri length overflow"
|
||||
simpletest "IPv4-unreach-MLVPN: IPv4/MPLS-labeled VPN MP Unreach, RD, 3 NLRIs"
|
||||
|
0
tests/lib/bgpd.exp
Normal file
0
tests/lib/bgpd.exp
Normal file
Loading…
Reference in New Issue
Block a user