Add HApowerFailure test

This requires at least one patch to ONOS for the `onos-power` script to
support non-default cell usernames and another patch to the onos warden
to allow multiple node failures.

Also included:
- logging changes to help debug multithreadded sections of the test.
- Some input validation in functions that don't directly call the cli
- Remove some verbose logging
- Distribute some onos commands amongst the active nodes
- Refactor out clearing the ONOS cli pexpect buffer before sending a
  command into it's own function

Change-Id: If1b868b399878209ab0394956f3b3918c0176909
14 files changed
tree: 28f202b70e13800ec53eb3f6e80ca9a1c836a8b6
  1. .gitignore
  2. .gitreview
  3. DELTA/
  4. README.md
  5. Robot/
  6. TestON/
README.md

TestON: Testing Infastructure by Paxterra and Open Networking Foundation

TestON is the testing platform that all the ONOS tests are being run on currently.

Visit the ONOS System Testing Guide on the ONOS Wiki for details about the repo, and our TestON Contribution Guide for how to contribute.

Quick Setup

  1. Clone OnosSystemTest from ONOS Gerrit:

    $ git clone https://gerrit.onosproject.org/OnosSystemTest
    
  2. Run the installation script:

    $ cd OnosSystemTest/TestON
    $ ./install.sh
    

Dependencies

  • ONOS - The system being tested.

  • Mininet - A Network Emulator. NOTE: Some driver functions rely on a modified version of Mininet. These functions are noted in the Mininet driver file. Here's how to checkout this branch from the 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.

  • Linc-OE - Some testcases use this to emulate optical devices.

    Requirements:

    1. Erlang R15B, R16B, R17 - if possible please use R17
    $ sudo apt-get install erlang
    
    1. libpcap-dev package if eth interfaces will be used
    $ 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
    

Tests

The tests are all located in TestON/tests/. Each test has its own folder with the following files:

  • .py file:

    • This defines the cases and sequence of events for the test.
  • .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 used in the .py files.

  • .params file:

    • Defines all the test-specific variables that are used by the test.

    • NOTE: The variable testcases defines which testcases are run.

Running TestON

  1. TestON must be run from its bin directory:

    $ cd TestON/bin
    
  2. To run a test:

    $ ./cli.py run SAMPstartTemplate_1node
    

Code Style

At Open Networking Foundation, we have adopted the Mininet Python Style formatting 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.

Troubleshooting

  • Double check the topo file for that specific test the nodes must be able to run that specific component (Mininet IP is targetting the machine with Mininet installed).

  • Enable passwordless logins between your nodes and the TestON node.

  • Visit our FAQ/Troubleshooting page on the ONOS Wiki.