summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <baker.dylan.c@gmail.com>2015-09-29 13:52:07 -0700
committerDylan Baker <baker.dylan.c@gmail.com>2015-10-09 12:23:37 -0700
commit53638cf2564cc649411cf974a3562e8706e6dae7 (patch)
tree47a5077466db07351b0e2b96b52d105449efa6b3
parent942928623ee7208a07ab1f5da953e627c18cc5fd (diff)
framework: add tox testing support
tox is a python test manager that runs the tests in isolated environments with their own copies of dependent libraries, and can be used to test against multiple versions of python. This allows us to easily test the framework with and without the acceleration modules it can optionally use (simplejson and lxml), it will also allow us to test against multiple versions of python 3.x (which we support for the generators, and presumably will support in the future) This uses the coverage module, and uses nose's cover-tests option. Unfortunately nose assumes that anything /[Tt]est/ is a test, and hides the tests for the test package. This might be resolvable by modifying the regex, but it isn't something straightforward to fix. Using --cover-tests will get us the test package, but it also gets us the tests package. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
-rw-r--r--.gitignore1
-rw-r--r--README2
-rw-r--r--tox.ini16
3 files changed, 19 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 6030aaf37..0f985bbfe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ tests/glslparsertest/glslcompiler
generated_tests/cl
.makotmp
+.tox/
*.css
*.html
diff --git a/README b/README
index 8bbb72d47..be8f4df19 100644
--- a/README
+++ b/README
@@ -42,6 +42,8 @@ Optionally, you can install the following:
- nose. A python test framework, used for running the python framework
test suite. (https://nose.readthedocs.org/en/latest/)
+ - tox. A tool for testing python packages against multiple configurations of
+ python (https://tox.readthedocs.org/en/latest/index.html)
- lxml. An accelerated python xml library using libxml2 (http://lxml.de/)
- simplejson. A fast C based implementation of the python json library.
(https://simplejson.readthedocs.org/en/latest/)
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 000000000..c29014c87
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,16 @@
+[tox]
+envlist = py27-{noaccel,accel}
+skipsdist=True
+
+[testenv]
+deps =
+ mako
+ numpy
+ six
+ nose
+ coverage
+ accel: simplejson
+ accel: lxml
+ accel: backports.lzma
+passenv=HOME
+commands = nosetests framework/tests --attr="!privliged" --with-cover --cover-package=framework --cover-tests