blob: 469a99ed786806de34f1a4eb720ebb49be354985 [file] [log] [blame]
#!/usr/bin/env python
"""
Run all tests
-v : verbose output
-e : emulator test only (no API tests)
-a : API tests only
"""
from unittest import defaultTestLoader, TextTestRunner, TestSuite
import os
import sys
from mininet.util import ensureRoot
from mininet.clean import cleanup
from mininet.log import setLogLevel
def runTests( testDir, verbosity=1, emuonly=False, apionly=False ):
"discover and run all tests in testDir"
# ensure inport paths work
sys.path.append("%s/.." % testDir)
# ensure root and cleanup before starting tests
ensureRoot()
cleanup()
# discover all tests in testDir
testSuite = defaultTestLoader.discover( testDir )
if emuonly:
testSuiteFiltered = [s for s in testSuite if "Emulator" in str(s)]
testSuite = TestSuite()
testSuite.addTests(testSuiteFiltered)
if apionly:
testSuiteFiltered = [s for s in testSuite if "Api" in str(s)]
testSuite = TestSuite()
testSuite.addTests(testSuiteFiltered)
# run tests
TextTestRunner( verbosity=verbosity ).run( testSuite )
def main(thisdir):
setLogLevel( 'warning' )
# get the directory containing example tests
vlevel = 2 if '-v' in sys.argv else 1
emuonly = ('-e' in sys.argv)
apionly = ('-a' in sys.argv)
runTests(
testDir=thisdir, verbosity=vlevel, emuonly=emuonly, apionly=apionly)
if __name__ == '__main__':
thisdir = os.path.dirname( os.path.realpath( __file__ ) )
main(thisdir)