blob: 93b08229f00fd01b2d5f24c8b4109c1a37be9a7b [file] [log] [blame]
peusterm94f53ae2016-01-15 12:32:53 +01001#!/usr/bin/env python
2
3"""
4Run all tests
5 -v : verbose output
6 -e : emulator test only (no API tests)
7 -a : API tests only
8"""
9
10from unittest import defaultTestLoader, TextTestRunner, TestSuite
11import os
12import sys
13from mininet.util import ensureRoot
14from mininet.clean import cleanup
15from mininet.log import setLogLevel
16
17
18def runTests( testDir, verbosity=1, emuonly=False, apionly=False ):
19 "discover and run all tests in testDir"
20 # ensure root and cleanup before starting tests
21 ensureRoot()
22 cleanup()
23 # discover all tests in testDir
24 testSuite = defaultTestLoader.discover( testDir )
25 if emuonly:
26 testSuiteFiltered = [s for s in testSuite if "Emulator" in str(s)]
27 testSuite = TestSuite()
28 testSuite.addTests(testSuiteFiltered)
29 if apionly:
30 testSuiteFiltered = [s for s in testSuite if "Api" in str(s)]
31 testSuite = TestSuite()
32 testSuite.addTests(testSuiteFiltered)
33
34 # run tests
35 TextTestRunner( verbosity=verbosity ).run( testSuite )
36
37
38def main(thisdir):
39 setLogLevel( 'warning' )
40 # get the directory containing example tests
41 vlevel = 2 if '-v' in sys.argv else 1
42 emuonly = ('-e' in sys.argv)
43 apionly = ('-a' in sys.argv)
44 runTests(
45 testDir=thisdir, verbosity=vlevel, emuonly=emuonly, apionly=apionly)
46
47
48if __name__ == '__main__':
49 thisdir = os.path.dirname( os.path.realpath( __file__ ) )
50 main(thisdir)