--- /dev/null
+#!/usr/bin/env python
+"""
+CSIT test tools.
+Authors: Baohua Yang@IBM, Denghui Huang@IBM
+Updated: 2013-11-07
+
+Usage: Before running the test tool, should
+ 1. Start 2-layer tree topology network. e.g., in Mininet, run
+ 'sudo mn --controller=remote,ip=127.0.0.1 --mac --topo tree,2'.
+ 2. Configure gateway in the controller web GUI, name = 'gateway', subnet = '10.0.0.254/24'.
+ 3. In Mininet, run 'h1 ping h2' to make sure the network is connected.
+"""
+import doctest
+import os
+from restlib import * # noqa
+
+
+def test_module(module_name):
+ '''
+ Run single test on given module.
+ '''
+ print "#Test case: " + module_name.replace('_', ' ')
+ cmd = 'python -m doctest ' + module_name + '.py'
+ os.system(cmd)
+
+
+def run(modules=None):
+ '''
+ Run test cases according to the given modules.
+ If no parameter is given, then will scan the case directory,
+ and try to run all cases.
+ '''
+ backup_dir = os.getcwd()
+ if not modules:
+ modules = [e[:-3] for e in os.listdir(MODULES_DIR) if e.endswith('.py')]
+ os.chdir(backup_dir + '/' + MODULES_DIR)
+ for name in modules:
+ test_module(name)
+ os.chdir(backup_dir)
+
+
+if __name__ == '__main__':
+ doctest.testmod()
+ test_modules = ['switch_manager', 'topology_manager', 'forwarding_rule_manager', 'statistics_manager',
+ 'host_tracker', 'arp_handler', 'forwarding_manager', 'container_manager']
+ # test_modules = ['topology_manager']
+ run(test_modules)
+ # run()