summaryrefslogtreecommitdiffhomepage
path: root/test
AgeCommit message (Collapse)Author
2019-08-20test: fix the versions of fabric and invokeFUJITA Tomonori
Seems that the latest versions change the APIs so CI tests fails. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-06-22Python3 support to gobgp testsFranza Cavalcante
This PR removes dependencies on old Fabric version, as it's not supported by Python3. The current Fabric versions don't support the colors and indent used previously, so we found substitute methods from other libraries and defined these in the library files. The local function from fabric is now just a wrapper to invoke's run function. All the files were processed through 2to3 command. All the tests were executed and we don't see any difference on the outputs when running Python2 or Python3. The creation of gobgp container is removed from base.py into fabfile.py, in order to comply with Fabric2 changes and simplify dependencies.
2019-04-08scenario_test: fix malfunctional testNasato Goto
2019-04-04test: switch to module from dep completelyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-11-26support received, accepted, and advertised counters per familyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-10-29Use assertEqual in python testsCarl Baldwin
In trying to run the local tests, I found that changing these assertTrue calls to assertEqual helped me out. With this, a failure shows the actual and expected values rather than just saying "True is not False" which is less helpful.
2018-08-31test: fix get_reachability()FUJITA Tomonori
the output of ping command changed? Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-08-28test/lib: Enable static IP addressNasato Goto
This patch enable us to give test containers a static IP address by passing 'ip_addr' argument to addif method. In addition, 'v6=True' argument is needed when we specify static IPv6 address. Usage: br01 = Bridge(name='br01', subnet='192.168.0.0/24', self_ip=False) g1 = GoBGPContainer(name='g1', asn=64512 router_id='10.0.0.1') br01.addif(g1, ip_addr='192.168.0.11')
2018-08-28test: Fix bridge methos and relative scenario testNasato Goto
This patch fix the logic of addif methos of Bridge class. IP address information will be registerd according to the IP version of bridge. This change lead the fixing of one of scenario test, "bgp_zebra_test.py".
2018-08-23policy cleanupFUJITA Tomonori
- remove ReplaceDefinedSet and ReplaceStatement APIs; not intutive and should create a new one instead of modifying the existing. - Rename ReplacePolicyAssignment to SetPolicyAssignment API; we use internally SetPolicy() name from the beginning. - Rename UpdatePolicy() to SetPolicies() API; It doesn't update anything so the name is confusing. It discards the all policies and create policies from the argument. - Changes some member names in structures for policy. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-08-21test/lib: Fix pkill command syntax for BusyBoxNasato Goto
Fix syntax of pkill in order to make use of it for BusyBox Linux based container available. This change is compatible with use of pkill for usual Linux.
2018-08-21test/lib: Change shell for init scriptNasato Goto
Change shell of start.sh from /bin/bash to /bin/sh in order to make BusyBox Linux based container available for scenario test.
2018-08-08rpc cleanupFUJITA Tomonori
- clean up RPC function names - rewrite gobgp command to use the api instead of config package - delete unused client package Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-07-07follow Standard Go Project LayoutFUJITA Tomonori
https://github.com/golang-standards/project-layout Now you can see clearly what are private and public library code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-06-23potential - Found a bug in the python testsJeff Bean
2018-06-13table: support AfiSafiIn Policy Condition matchMarcin Ptaszyński
2018-05-30graceful_restart_test: Confirm stale paths removedIWASE Yusuke
This patch adds checks to confirm the stale paths are also removed from the adj-RIB-in table. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-30graceful_restart_test: Assert timer not expiredIWASE Yusuke
This patch fixes to assert the Graceful Restart time is not expired while waiting for re-establishing peer connection. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-30scenario_test: Extend Graceful Restart timeIWASE Yusuke
The current Graceful Restart time is 20 sec, but this value is not enough long and can be exceeded unexpectedly while waiting for re-establishing peer connections. Then the stale paths on a receiving router are dropped before the paths successfully synced, and some test cases on "graceful_restart_test.py" will be passed unexpectedly. This patch extends the Graceful Restart time to 30 sec and introduces the constants for Graceful Restart time and Long-Lived Graceful Restart time. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-29bgp_zebra_nht_test: Test case to sync nexthop statesIWASE Yusuke
This patch adds a test case to test if the path, which came after the NEXTHOP_UPDATE message was received from Zebra, is updated by reflecting the nexthop cache. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-28table: update accepted number in adj-in rib after softreset-inFUJITA Tomonori
update accepted number in adj-in rib after AllowOwnAs has changed. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-05-28test/aspath: check accepted and received numbersFUJITA Tomonori
make sure that an adj-rib return the accepted and received numbers when it has an as-looped path. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-05-28rtc_test: Test cases for infinite RTC UPDATE loopIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-28rtc_test: Test cases for inter-ASIWASE Yusuke
This patch adds test cases for the Route Target Constraint of the inter-AS route distribution and combination of the inter-AS and intra-AS route distribution. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-28rtc_test: Enhance test cases for intra-AS RTCIWASE Yusuke
This patch adds assertion points for the counts of advertised and received routes. Also adds comments for the states of VRFs and routes. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-24server: Withdraw routes when received RTM withdrawalIWASE Yusuke
Because the RTM is removed from adj-RIB-in before collecting the candidate routes to be withdrawn, the candidates are unexpectedly filtered before sending withdraw messages. Then on the peers, the VPN routes are left on. This patch fixes to selects candidates from the filtered paths and send withdraw messages as expected. Also resolves the TODO in "test/scenario_test/rtc_test.py". Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-24test/rtc: Add test for conflict RTC configSatoshi Fujimoto
Add test for the issue reported on #1682 (https://github.com/osrg/gobgp/issues/1682). Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2018-05-23bgp_zebra_nht_test: Test cases when nexthop unreachableIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-23bgp_zebra_nht_test: Improve pylint resultIWASE Yusuke
Also removes a debug print. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-23bgp_zebra_nht_test: Use utility functions of test/libIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-21test/lib/quagga: Minimize advertisement-intervalIWASE Yusuke
Quagga seems to advertise routes to neighbors by intervals of 30 seconds (eBGP) or 5 seconds (iBGP) by default. Because of this delay, timer in "bgp_confederation_test.py", 60 seconds, can be exceeded when the UPDATE messages need to go through multi ASs. This patch fixes to use minimum advertisement-interval and reduces the time of test cases. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-21bgp_confederation_test: Improve pylint resultIWASE Yusuke
Also removes a debug print Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-21bgp_router_test: Retry assertions of RIB for stabilityIWASE Yusuke
To improve the stability of "bgp_router_test.py", this patch fixes to retry assertions of RIB on a Quagga router after shutting down a neighbor. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-15scenario_test: Wait for GoBGP starting upIWASE Yusuke
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>
2018-05-15test/lib/gobgp: Rename graceful_restart() to stop_gobgp()IWASE Yusuke
GoBGPContainer.graceful_restart() does not "restart" GoBGP daemon, but just stops (kills) GoBGP daemon. Then this patch renames graceful_restart() to stop_gobgp() to avoid confusion. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-15graceful_restart_test: Remove redundant parenthesesIWASE Yusuke
Improves pylint result. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-05-10test: avoid fabric version 2.0FUJITA Tomonori
Seems that fabric v2 doesn't work with the current files. Let's keep using v1.X for now. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-05-07use sorted single master table for route server setupFUJITA Tomonori
https://github.com/osrg/gobgp/issues/1249 The IN policy was removed. The modification by the IMPORT policy are visible to all route server peers. This saves some dozens bytes memory per a path. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-04-18rtc_test: Add a TODO commentIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-04-13rtc_test: Add description for topologiesIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-04-13test_rtc: Use assertEqual for better log messageIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-04-02*.md: Improvements for markdownlintIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-02-21table: fix handleMacMobility()FUJITA Tomonori
needs to find a diffrent ESI with the same mac address. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-02-10flow_spec_test: Enhance test cases with ExaBGPIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-02-10test/lib/exabgp: Enable to get adj-RIB-{in,out}IWASE Yusuke
"exabgpcli" supports to show adj-RIB-in and adj-RIB-out, this patch enables ExaBGPContainer to get these RIBs information. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-02-10test/lib/exabgp: Use exabgpcli to add/del routesIWASE Yusuke
Currently, to advertise or withdraw routes with ExaBGPContainer, we need to configure static routes via config file and restart ExaBGP daemon. In other words, we can NOT send withdrawing advertisement with ExaBGPContainer. Also, restating ExaBGP daemon frequently can make scenario test unstable, and it should be avoided. On the other hand, with ExaBGP version 4.0.5 or later(*), we can advertise or withdraw routes using "exabgpcli" without restating ExaBGP daemon (or writing application which calls ExaBGP's APIs). This patch fixes to use "exabgpcli" and reduces the number of restating ExaBGP daemon. Note: According to this change, adding routes into ExaBGP should be called after adding neighbor. (*): "exabgpcli" is introduced at version 4.0.2, but has some bugs related to Python 3 compatibility and FlowSpec rules combinations, then we need to use version 4.0.5 or later. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-01-27scenario_test: Enable to try assertion several timesIWASE Yusuke
Some times, on Travis-CI, some test cases fail unexpectedly in checking paths in RIBs due to advertisements are not yet received from other routers. Currently, in order to avoid this unexpected result, "time.sleep" is inserted after adding new routes, but it is not enough. This patch introduces a new function to enable to do assertion several times and avoid failure with the first assertion. Note: This patch does not introduces this change into all test cases, do only into some test cases which fail relatively frequently. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-01-27test/lib/gobgp: Adding routes without reloadingIWASE Yusuke
With the current implementation, when adding routes on GoBGPContainer, we re-configure and reload daemon, then add routes using CLI command. Differ from QuaggaBGPContainer, when deletion of routes, reloading is not required, but if reloading daemon frequently, we need to wait for the daemon restarting, it causes testing time longer and unstable. This patch enables to add routes without reloading daemon. Note: According to this change, adding routes should be called after starting daemons. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-01-27test/lib/Quagga: Use vtysh to add/del routesIWASE Yusuke
Currently, to advertise or withdraw routes on QuaggaBGPContainer, we need to configure static routes in configure file and restart Quagga daemons. In other words, we can NOT send withdrawing advertisement from Quagga side. Also, restating Quagga daemons frequently can make scenario test unstable, and it should be avoided. This patch fixes to use "vtysh" and reduces the number of restating Quagga daemons. Note: According to this change, adding routes on Quagga should be called after starting daemons. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-01-19test/lib/{bird,gobgp,quagga,yabgp}: Wait for daemon bootIWASE Yusuke
Currently, scenario test library does not wait for the daemons boot in containers at starting up or after sending SIGHUP for reloading new configurations. So some test cases (e.g., graceful_restart_test.py) fails occasionally to insert static routes into GoBGP after reloading new configurations. This patch fixes to wait for the daemons boot and improves the stability of scenario tests. Note: This patch does not introduce these improvements to BagpipeContainer and ExaBGPContainer, because; - Docker image for BaGPipe, which used in scenario test library, is too old and BagpipeContainer does not seem to be used in the current test cases. - The version of ExaBGP in "osrg/exabgp" Docker image has no way to ask the daemon status other than "ps" command ("ps" is already done, but not enough). If "exabgpcli" is available on ExaBGP container, which is required the next release of 4.0.2 or 3.4.21, we can use it to check whether ExaBGP is started up or not. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>