]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Add support for reading modules list from a file
authorIlan Peer <ilan.peer@intel.com>
Sun, 26 Oct 2014 07:06:33 +0000 (03:06 -0400)
committerJouni Malinen <j@w1.fi>
Sun, 26 Oct 2014 21:27:26 +0000 (23:27 +0200)
The new run-tests.py argument "-l <file>" can now be used to specify the
test modules using a text file.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
tests/hwsim/run-tests.py

index 52cb7f9da5b4241fa1bc101f54efcb48eac08074..7352a1ce84803a5f49fc59572050ed1ac2ec58d7 100755 (executable)
@@ -195,14 +195,16 @@ def main():
     parser.add_argument('-f', dest='testmodules', metavar='<test module>',
                         help='execute only tests from these test modules',
                         type=str, choices=[[]] + test_modules, nargs='+')
+    parser.add_argument('-l', metavar='<modules file>', dest='mfile',
+                        help='test modules file name')
     parser.add_argument('tests', metavar='<test>', nargs='*', type=str,
                         help='tests to run (only valid without -f)',
                         choices=[[]] + test_names)
 
     args = parser.parse_args()
 
-    if args.tests and args.testmodules:
-        print 'Invalid arguments - both test module and tests given'
+    if (args.tests and args.testmodules) or (args.tests and args.mfile) or (args.testmodules and args.mfile):
+        print 'Invalid arguments - only one of (test, test modules, modules file) can be given.'
         sys.exit(2)
 
     if not args.logdir:
@@ -290,6 +292,16 @@ def main():
     if args.dmesg:
         subprocess.call(['sudo', 'dmesg', '-c'], stdout=open('/dev/null', 'w'))
 
+    # read the modules from the modules file
+    if args.mfile:
+       args.testmodules = []
+       with open(args.mfile) as f:
+           for line in f.readlines():
+               line = line.strip()
+               if not line or line.startswith('#'):
+                   continue
+               args.testmodules.append(line)
+
     tests_to_run = []
     for t in tests:
         name = t.__name__.replace('test_', '', 1)