commit | 2f190caa9a6ae49479647ff636f877476d0e6761 | [log] [tgz] |
---|---|---|
author | Jeremy <jeremy@onlab.us> | Fri Jan 29 15:23:57 2016 -0800 |
committer | Jeremy <jeremy@onlab.us> | Thu Feb 04 10:27:40 2016 -0800 |
tree | 6586fe53523ad419fa02acbb2e253de21c6cdf3c | |
parent | e4ab0575a747a4d49d4b5ec88fc9e6313ac185e8 [diff] |
Update to FUNCintentRest Currently Changes: -Updated cases in FUNCintentRest up to case 1000 -Case 8 replaced with case 8 from FUNCintent and some small modifications -Cases were added and existing cases were renumbered to more closely match FUNCintent -Cases 1000, 2000, 5000 refactored to match cases 1000, 2000, 5000 from FUNCintent -Three functions added to FUNCintentRest's FuncIntentFunction from the one in FUNCintent -sendDiscoveryArp -confirmHostDiscovery -populateHostsData -The function hostIntent was split into installHostIntent and testHostIntent -The function pointIntent was split into installPointIntent and testPointIntent TODO: -Finish updating rest of cases -Continue updating FUNCintentRest to use Scapy -Add cli instance to provide function thes rest API is missing Uncompletable -Complete Case 3000, 4000, and write analogue to Case 6000 in FUNCintent -the REST API does not currently support Single to Multi and Multi to Single Point Intents. Change-Id: I94917bef3fcaaec9d365df12528df0a05e98246f
TestON is the testing platform that all the ONOS tests are being run on currently.
At ON.Lab, we have adopted the Mininet Python style for our drivers and testcases. The one exception is that TestON does not correctly parse multiline comments in testcases when the ending triple double quotes are on the same line as the comment. Therefore, in the testcases, the ending triple double quotes must be on it's own line.
Pull the git repo from https://github.com/OPENNETWORKINGLAB/OnosSystemTest.git
$ git clone https://github.com/OPENNETWORKINGLAB/OnosSystemTest.git
Make a symbolic link for TestON on the HOMEDIR Execute the following from the home directory
$ ln -s OnosSystemTest/TestON TestON
Make sure python path is correct
$ export PYTHONPATH={PATH TO HOMEDIR}/TestON/
$ echo $PYTHONPATH
ONOS
Mininet - Some driver functions rely on a modified version of Mininet. These functions are noted in the mininet driver file. To checkout this branch from your Mininet folder:
$ git remote add jhall11 https://github.com/jhall11/mininet.git
$ git fetch jhall11
$ git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
$ git pull
Note that you may need to run 'sudo make develop' if your mnexec.c file changed when switching branches.
Install python packages configObj and pexpect (Note: pexpect 3.3 has a known bug. We recommend using version 3.2 for now). They can be installed as :
$ sudo pip install configObj
$ sudo pip install pexpect==3.2
$ sudo pip install numpy
Linc-OE - Some testcases use this to emulate optical devices
Requirements:
$ sudo apt-get install erlang
$ sudo apt-get install libpcap-dev
Building and Running:
$ git clone https://github.com/shivarammysore/LINC-Switch.git linc-oe
$ cd linc-oe
$ git checkout tags/oe-0.3
$ cp rel/files/sys.config.orig rel/files/sys.config
$ make rel
Config file at TestON/config/teston.cfg
Change the file paths to the appropriate paths
The .topo file for each test
Must change the IPs/login/etc to point to the nodes you want to run on
TestON must be ran from its bin directory
$ cd TestON/bin
Launch cli
$ ./cli.py
Run the test
teston> run PingallExample
The tests are all located it TestON/tests/ Each test has its own folder with the following files:
.ospk file
This is written in Openspeak, a word based language developed by Paxterra.
It defines the cases and sequence of events for the test
.py file
This file serves the same exact function as the openspeak file.
It will only be used if there is NO .ospk file, so if you like python, delete or rename the .ospk file
.topo file
This defines all the components that TestON creates for that test and includes data such as IP address, login info, and device drivers
The Components must be defined in this file to be uesd in the openspeak or python files.
.params file
Defines all the test-specific variables that are used by the test.
NOTE: The variable testcases
which defines which testcases run when the test is ran.
Here are a few things to check if it doesn't work
Double check the topo file for that specific test the nodes must be able to run that specific component ( Mininet IP -> machine with mn installed)
Enable passwordless logins between your nodes and the TestON node.