summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2018-05-15 08:26:42 +0900
committerIWASE Yusuke <iwase.yusuke0@gmail.com>2018-05-15 09:46:16 +0900
commit2c388e07576a8ea1d7f661387f5a7ba44bc6f01e (patch)
tree703a8b4af518e778fb0e28d093410c0657b9d786 /test
parent3fc524a5f5d810597757c63c51106819b520680f (diff)
scenario_test: Wait for GoBGP starting up
For the stability of some scenario tests, this patch fixes to wait for GoBGP starting up after restarting GoBGP daemon. Currently, there are cases that CLI command can be called without checking whether GoBGP daemon is surely started or not. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/lib/gobgp.py8
-rw-r--r--test/scenario_test/graceful_restart_test.py7
-rw-r--r--test/scenario_test/long_lived_graceful_restart_test.py3
3 files changed, 11 insertions, 7 deletions
diff --git a/test/lib/gobgp.py b/test/lib/gobgp.py
index a4d697b1..3c33056b 100644
--- a/test/lib/gobgp.py
+++ b/test/lib/gobgp.py
@@ -15,6 +15,7 @@
from __future__ import absolute_import
+import collections
import json
from itertools import chain
from threading import Thread
@@ -27,7 +28,6 @@ from fabric.utils import indent
import netaddr
import toml
import yaml
-import collections
from lib.base import (
wait_for_completion,
@@ -113,6 +113,12 @@ class GoBGPContainer(BGPContainer):
local(cmd, capture=True)
self.local("{0}/start.sh".format(self.SHARED_VOLUME), detach=True)
+ def start_gobgp(self, graceful_restart=False):
+ if self._is_running():
+ raise RuntimeError('GoBGP is already running')
+ self._start_gobgp(graceful_restart=graceful_restart)
+ self._wait_for_boot()
+
def stop_gobgp(self):
self.local("pkill -INT gobgpd")
diff --git a/test/scenario_test/graceful_restart_test.py b/test/scenario_test/graceful_restart_test.py
index ac4130d2..5d2c2b9d 100644
--- a/test/scenario_test/graceful_restart_test.py
+++ b/test/scenario_test/graceful_restart_test.py
@@ -78,8 +78,7 @@ class GoBGPTestBase(unittest.TestCase):
self.assertTrue(p['stale'])
g1.routes = {}
- g1._start_gobgp(graceful_restart=True)
- time.sleep(3)
+ g1.start_gobgp(graceful_restart=True)
g1.add_route('10.10.20.0/24')
def test_03_neighbor_established(self):
@@ -134,7 +133,7 @@ class GoBGPTestBase(unittest.TestCase):
g2 = self.bgpds['g2']
g3 = self.bgpds['g3']
- g1._start_gobgp()
+ g1.start_gobgp()
g1.del_peer(g2)
g1.del_peer(g3)
@@ -157,7 +156,7 @@ class GoBGPTestBase(unittest.TestCase):
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)
+ g1.start_gobgp(graceful_restart=True)
count = 0
while (g1.get_neighbor_state(g2) != BGP_FSM_ESTABLISHED
diff --git a/test/scenario_test/long_lived_graceful_restart_test.py b/test/scenario_test/long_lived_graceful_restart_test.py
index a9f6a0ee..0a42afab 100644
--- a/test/scenario_test/long_lived_graceful_restart_test.py
+++ b/test/scenario_test/long_lived_graceful_restart_test.py
@@ -110,8 +110,7 @@ class GoBGPTestBase(unittest.TestCase):
# withdrawn
self.assertTrue(len(g4.get_global_rib('10.0.0.0/24')) == 0)
- g2._start_gobgp(graceful_restart=True)
- time.sleep(2)
+ g2.start_gobgp(graceful_restart=True)
g2.local('gobgp global rib add 10.0.0.0/24')
g2.local('gobgp global rib add 10.10.0.0/24')