On Fri, May 20, 2016 at 11:49 AM, Joe Stringer <j...@ovn.org> wrote: > Signed-off-by: Joe Stringer <j...@ovn.org> > --- > Thanks for working on this!
> INSTALL.md | 88 > +++++++++++++++++++++++++++++++++++++++++++++++++++++--------- > 1 file changed, 76 insertions(+), 12 deletions(-) > > diff --git a/INSTALL.md b/INSTALL.md > index 5b37786d973d..82f5188eacb8 100644 > --- a/INSTALL.md > +++ b/INSTALL.md > @@ -101,6 +101,14 @@ To run the unit tests, you also need: > - Perl. Version 5.10.1 is known to work. Earlier versions should > also work. > > +The "system" tests for userspace and Linux datapaths also rely upon: > Should we just stick with "Datapath testing" > + > + - pyftpdlib. Version 1.2.0 is known to work. Earlier versions should > + also work. > + > + - GNU wget. Version 1.16 is known to work. Earlier versions should > + also work. > + > The ovs-vswitchd.conf.db(5) manpage will include an E-R diagram, in > formats other than plain text, only if you have the following: > > @@ -593,24 +601,43 @@ test failures that you believe to represent bugs in > Open vSwitch. > Include the precise versions of Open vSwitch and Ryu in your bug > report, plus any other information needed to reproduce the problem. > > -Vagrant > -------- > +Datapath traffic testing > How about drop "traffic" from the title. More datapath features can be tested using this framework without sending any traffic through, right? > +------------------------ > + > +Open vSwitch also includes a suite of tests specifically for datapath > +functionality, which can be run against the userspace or kernel datapaths. > +If you are developing datapath features, it is recommended that you use > +these tests and build upon them to verify your implementation. > > -Requires: Vagrant (version 1.7.0 or later) and a compatible hypervisor > +The datapath tests make some assumptions about the environment. They > +must be run under root privileges on a Linux system with support for > +network namespaces. These tests are recommended to be run within an > +isolated environment that is separate from your development system. > + > +For ease of use, a vagrant box is provided to invoke these tests. This > +also provides kernel isolation, protecting your development host from > +kernel panics or configuration conflicts in the testsuite. If you wish > +to run the tests without using the vagrant box, there are further > +instructions below. > + > +### Vagrant > + > +*Requires Vagrant (version 1.7.0 or later) and a compatible hypervisor* > > You must bootstrap and configure the sources (steps are in "Building > and Installing Open vSwitch for Linux, FreeBSD or NetBSD" above) before > you run the steps described here. > > A Vagrantfile is provided allowing to compile and provision the source > -tree as found locally in a virtual machine using the following commands: > +tree as found locally in a virtual machine using the following command: > > vagrant up > - vagrant ssh > > -This will bring up w Fedora 20 VM by default, alternatively the > -`Vagrantfile` can be modified to use a different distribution box as > -base. Also, the VM can be reprovisioned at any time: > +This will bring up a Fedora 20 VM by default. If you wish to use a > +different box or a vagrant backend not supported by the default box, > +the `Vagrantfile` can be modified to use a different box as base. > + > +The VM can be reprovisioned at any time: > > vagrant provision > > @@ -619,11 +646,10 @@ OVS out-of-tree compilation environment can be set > up with: > ./boot.sh > vagrant provision --provision-with configure_ovs,build_ovs > > -This will set up an out-of-tree build environment in /home/vagrant/build. > -The source code can be found in /vagrant. Out-of-tree build is preferred > -to work around limitations of the sync file systems. > +This will set up an out-of-tree build environment inside the VM in > +/root/build. The source code can be found in /vagrant. > -To recompile and reinstall OVS using RPM: > +To recompile and reinstall OVS in the VM using RPM: > > ./boot.sh > vagrant provision --provision-with configure_ovs,install_rpm > @@ -635,6 +661,44 @@ the self-tests mentioned above. To run them: > ./boot.sh > vagrant provision --provision-with > configure_ovs,test_ovs_kmod,test_ovs_system_userspace > > +The results of the testsuite reside in the VM root user's home directory: > + > + vagrant ssh > + sudo -s > + cd /root/build > + ls tests/system* > + > +### Native > + > +The datapath testsuite as invoked by Vagrant above may also be run > +manually on a Linux system with root privileges. If some tests are > +being skipped, consider updating your iproute2 package and Linux kernel > +version. This is not clear to me. > These tests may take several minutes to complete, and cannot be > +run in parallel. + > +To invoke the system testsuite with the userspace datapath: > + > + make check-system-userspace > + > +Make targets are also provided for testing the Linux kernel module. > +Note that these tests operate by inserting modules into the running > +Linux kernel, so if the tests are able to trigger a bug in the OVS > +kernel module or in the upstream kernel then the kernel may panic. > + > +To run the testsuite against the kernel module which is currently > +installed on your system: > + > + make check-kernel > + > +To install the kernel module from the current build directory and > +run the testsuite against that kernel module: > + > + make check-kmod > + > +The testsuite logs will be placed in tests/system-userspace-traffic.log > +for the userspace target, or tests/system-kmod-traffic.log for the > +kernel targets. > May be it will be clearer to separately discuss kernel datapath and user space datapath? + > Continuous Integration with Travis-CI > ------------------------------------- > > -- > 2.8.2 > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev