summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLou Berger <lberger@labn.net>2019-06-13 22:38:19 +0200
committerLou Berger <lberger@labn.net>2019-06-18 13:54:57 +0200
commit90d5fc83c0986fcc20546cb9d527bd3280ee9937 (patch)
tree4ca5cd8da3b68f156b062d6d09a162a1a3a09679 /tests
parentbgpd: handle additional events occuring during instance shutdown (diff)
downloadfrr-90d5fc83c0986fcc20546cb9d527bd3280ee9937.tar.xz
frr-90d5fc83c0986fcc20546cb9d527bd3280ee9937.zip
tests/topotests: add bgp_instance_del_test to test for crashes seen during bgp instance deletes
Signed-off-by: Lou Berger <lberger@labn.net>
Diffstat (limited to 'tests')
-rw-r--r--tests/topotests/bgp_instance_del_test/__init__.py0
l---------tests/topotests/bgp_instance_del_test/ce11
l---------tests/topotests/bgp_instance_del_test/ce21
l---------tests/topotests/bgp_instance_del_test/ce31
l---------tests/topotests/bgp_instance_del_test/ce41
l---------tests/topotests/bgp_instance_del_test/customize.py1
l---------tests/topotests/bgp_instance_del_test/r11
l---------tests/topotests/bgp_instance_del_test/r21
l---------tests/topotests/bgp_instance_del_test/r31
l---------tests/topotests/bgp_instance_del_test/r41
l---------tests/topotests/bgp_instance_del_test/scripts1
-rwxr-xr-xtests/topotests/bgp_instance_del_test/test_bgp_instance_del_test.py89
-rw-r--r--tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/del_bgp_instances.py7
13 files changed, 106 insertions, 0 deletions
diff --git a/tests/topotests/bgp_instance_del_test/__init__.py b/tests/topotests/bgp_instance_del_test/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/__init__.py
diff --git a/tests/topotests/bgp_instance_del_test/ce1 b/tests/topotests/bgp_instance_del_test/ce1
new file mode 120000
index 000000000..0924eb5f3
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/ce1
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/ce1 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/ce2 b/tests/topotests/bgp_instance_del_test/ce2
new file mode 120000
index 000000000..8c7a6777a
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/ce2
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/ce2 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/ce3 b/tests/topotests/bgp_instance_del_test/ce3
new file mode 120000
index 000000000..0abb8e55e
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/ce3
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/ce3 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/ce4 b/tests/topotests/bgp_instance_del_test/ce4
new file mode 120000
index 000000000..ddee1eff9
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/ce4
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/ce4 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/customize.py b/tests/topotests/bgp_instance_del_test/customize.py
new file mode 120000
index 000000000..99fcf39eb
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/customize.py
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/customize.py \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/r1 b/tests/topotests/bgp_instance_del_test/r1
new file mode 120000
index 000000000..16babfa8d
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/r1
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/r1 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/r2 b/tests/topotests/bgp_instance_del_test/r2
new file mode 120000
index 000000000..e25b93276
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/r2
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/r2 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/r3 b/tests/topotests/bgp_instance_del_test/r3
new file mode 120000
index 000000000..0d7c189c6
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/r3
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/r3 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/r4 b/tests/topotests/bgp_instance_del_test/r4
new file mode 120000
index 000000000..2d667d37a
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/r4
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/r4 \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/scripts b/tests/topotests/bgp_instance_del_test/scripts
new file mode 120000
index 000000000..c46bf1f07
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/scripts
@@ -0,0 +1 @@
+../bgp_l3vpn_to_bgp_vrf/scripts \ No newline at end of file
diff --git a/tests/topotests/bgp_instance_del_test/test_bgp_instance_del_test.py b/tests/topotests/bgp_instance_del_test/test_bgp_instance_del_test.py
new file mode 100755
index 000000000..115c7793a
--- /dev/null
+++ b/tests/topotests/bgp_instance_del_test/test_bgp_instance_del_test.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+
+#
+# Part of NetDEF Topology Tests
+#
+# Copyright (c) 2018, LabN Consulting, L.L.C.
+# Authored by Lou Berger <lberger@labn.net>
+#
+# Permission to use, copy, modify, and/or distribute this software
+# for any purpose with or without fee is hereby granted, provided
+# that the above copyright notice and this permission notice appear
+# in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
+# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+#
+
+import os
+import sys
+import pytest
+
+sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../'))
+
+from lib.ltemplate import *
+
+def test_check_linux_vrf():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\', iproute2=\'4.9\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True, iproute2=\'4.9\')'
+ ltemplateTest('scripts/check_linux_vrf.py', False, CliOnFail, CheckFunc)
+
+def test_adjacencies():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True)'
+ ltemplateTest('scripts/adjacencies.py', False, CliOnFail, CheckFunc)
+
+def SKIP_test_add_routes():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True)'
+ ltemplateTest('scripts/add_routes.py', False, CliOnFail, CheckFunc)
+
+def test_check_routes():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True)'
+ ltemplateTest('scripts/check_routes.py', False, CliOnFail, CheckFunc)
+
+#manual data path setup test - remove once have bgp/zebra vrf path working
+def test_check_linux_mpls():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\', iproute2=\'4.9\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True, iproute2=\'4.9\')'
+ ltemplateTest('scripts/check_linux_mpls.py', False, CliOnFail, CheckFunc)
+
+def test_del_bgp_instances():
+ CliOnFail = None
+ # For debugging, uncomment the next line
+ #CliOnFail = 'tgen.mininet_cli'
+ CheckFunc = 'ltemplateVersionCheck(\'4.1\')'
+ #uncomment next line to start cli *before* script is run
+ #CheckFunc = 'ltemplateVersionCheck(\'4.1\', cli=True)'
+ ltemplateTest('scripts/del_bgp_instances.py', False, CliOnFail, CheckFunc)
+
+if __name__ == '__main__':
+ retval = pytest.main(["-s"])
+ sys.exit(retval)
diff --git a/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/del_bgp_instances.py b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/del_bgp_instances.py
new file mode 100644
index 000000000..c25c2d9ec
--- /dev/null
+++ b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/del_bgp_instances.py
@@ -0,0 +1,7 @@
+from lutil import luCommand
+
+luCommand('r1','/usr/lib/frr/vtysh -c "conf ter" -c "no router bgp 5227 vrf r1-cust1" -c "no router bgp 5226"','.','none','Cleared bgp instances')
+luCommand('r2','/usr/lib/frr/vtysh -c "conf ter" -c "no router bgp 5226"','.','none','Cleared bgp instances')
+luCommand('r3','/usr/lib/frr/vtysh -c "conf ter" -c "no router bgp 5227 vrf r3-cust1" -c "no router bgp 5226"','.','none','Cleared bgp instances')
+luCommand('r4','/usr/lib/frr/vtysh -c "conf ter" -c "no router bgp 5228 vrf r4-cust2" -c "no router bgp 5227 vrf r4-cust1" -c "no router bgp 5226"','.','none','Cleared bgp instances')
+