diff options
author | Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> | 2017-06-06 16:30:42 +0900 |
---|---|---|
committer | Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> | 2017-06-08 13:44:13 +0900 |
commit | eed50e9d048fdb388a0cc91db58eabd2376fdb7b (patch) | |
tree | 093e8f670e8d38a461cb8ffc3ba8f5fa0902c3a4 | |
parent | 6b710bae425a222a43fbd615a3f4464c3361175d (diff) |
test: Test for Graceful Restart with multiple peers
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
-rw-r--r-- | test/scenario_test/graceful_restart_test.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/scenario_test/graceful_restart_test.py b/test/scenario_test/graceful_restart_test.py index 4f3c1563..60e10437 100644 --- a/test/scenario_test/graceful_restart_test.py +++ b/test/scenario_test/graceful_restart_test.py @@ -26,6 +26,7 @@ from lib.noseplugin import OptionParser, parser_option from lib import base from lib.base import ( + BGP_FSM_IDLE, BGP_FSM_ACTIVE, BGP_FSM_ESTABLISHED, ) @@ -128,6 +129,47 @@ class GoBGPTestBase(unittest.TestCase): g2 = self.bgpds['g2'] self.assertTrue(len(g2.get_global_rib()) == 0) + def test_07_multineighbor_established(self): + g1 = self.bgpds['g1'] + g2 = self.bgpds['g2'] + g3 = self.bgpds['g3'] + + g1._start_gobgp() + + g1.del_peer(g2) + g1.del_peer(g3) + g2.del_peer(g1) + g3.del_peer(g1) + g1.add_peer(g2, graceful_restart=True, llgr=True) + g1.add_peer(g3, graceful_restart=True, llgr=True) + g2.add_peer(g1, graceful_restart=True, llgr=True) + g3.add_peer(g1, graceful_restart=True, llgr=True) + + g2.wait_for(expected_state=BGP_FSM_ESTABLISHED, peer=g1) + g3.wait_for(expected_state=BGP_FSM_ESTABLISHED, peer=g1) + + def test_08_multineighbor_graceful_restart(self): + g1 = self.bgpds['g1'] + g2 = self.bgpds['g2'] + g3 = self.bgpds['g3'] + + g1.graceful_restart() + g2.wait_for(expected_state=BGP_FSM_ACTIVE, peer=g1) + g3.wait_for(expected_state=BGP_FSM_ACTIVE, peer=g1) + + g1._start_gobgp(graceful_restart=True) + + count = 0 + while ((g1.get_neighbor_state(g2) != BGP_FSM_ESTABLISHED) + or (g1.get_neighbor_state(g3) != BGP_FSM_ESTABLISHED)): + count += 1 + # assert connections are not refused + self.assertTrue(g1.get_neighbor_state(g2) != BGP_FSM_IDLE) + self.assertTrue(g1.get_neighbor_state(g3) != BGP_FSM_IDLE) + if count > 120: + raise Exception('timeout') + time.sleep(1) + if __name__ == '__main__': output = local("which docker 2>&1 > /dev/null ; echo $?", capture=True) |