This page explains how to set up a scenario test environment and run the test.
Assume you finished setting up Golang and Docker on Ubuntu 14.04 Server VM. We recommend allocating memory more than 8GB to the VM. Because this scenario test runs a lot of test cases concurrently.
Please check if Golang and Docker is installed correctly and make sure the $GOPATH is defined.
$ go version
go version go1.5.1 linux/amd64
$ echo $GOPATH
/home/yokoi-h/work
$ sudo docker version
Client:
Version: 1.9.0
API version: 1.21
Go version: go1.4.2
Git commit: 76d6bc9
Built: Tue Nov 3 17:43:42 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.0
API version: 1.21
Go version: go1.4.2
Git commit: 76d6bc9
Built: Tue Nov 3 17:43:42 UTC 2015
OS/Arch: linux/amd64
Execute the following commands inside the VM to install the dependencies:
- Install pip and pipework.
$ sudo apt-get update
$ sudo apt-get install git python-pip python-dev iputils-arping bridge-utils lv
$ sudo wget https://raw.github.com/jpetazzo/pipework/master/pipework -O /usr/local/bin/pipework
$ sudo chmod 755 /usr/local/bin/pipework
- Get docker images. Download docker images pertaining to GoBGP testing.
$ sudo docker pull golang:1.5
$ sudo docker pull osrg/quagga
$ sudo docker pull osrg/gobgp
- Clone gobgp and install python libraries.
$ mkdir -p $GOPATH/src/github.com/osrg
$ cd $GOPATH/src/github.com/osrg
$ git clone https://github.com/osrg/gobgp.git
$ cd ./gobgp/test
$ sudo pip install -r pip-requires.txt
You need to install local source code into gobgp docker container. You also need this operation at every modification to the source code.
$ cd $GOPATH/src/github.com/osrg/gobgp
$ sudo fab -f ./test/lib/base.py make_gobgp_ctn --set tag=gobgp
- Run all test
You can run all scenario tests with run_all_tests.sh. If all tests passed, you can see "all tests passed successfully" at the end of the test.
$ cd $GOPATH/src/github.com/osrg/gobgp/test/scenario_test
$ ./run_all_tests.sh
...
OK
all tests passed successfully
2. Run each test
Gobgp have a scenario test shown in the following. You can run scenario tests individually with each test file.
$ cd $GOPATH/src/github.com/osrg/gobgp/test/scenario_test
$ sudo -E PYTHONPATH=$GOBGP/test python <scenario test name>.py
...
OK
what kind of scenaio tests:
- bgp_router_test
- bgp_zebra_test
- evpn_test
- flow_spec_test
- global_policy_test
- ibgp_router_test
- route_reflector_test
- route_server_ipv4_v6_test
- route_server_malformed_test
- route_server_policy_grpc_test
- route_server_policy_test
- route_server_test
A lot of containers are created during the test. Let's clean up.
$ sudo docker rm -f $(sudo docker ps -a -q)