@ -163,7 +163,7 @@ def main():
Help text and arguments for individual test script : ''' ,
Help text and arguments for individual test script : ''' ,
formatter_class = argparse . RawTextHelpFormatter )
formatter_class = argparse . RawTextHelpFormatter )
parser . add_argument ( ' --coverage ' , action = ' store_true ' , help = ' generate a basic coverage report for the RPC interface ' )
parser . add_argument ( ' --coverage ' , action = ' store_true ' , help = ' generate a basic coverage report for the RPC interface ' )
parser . add_argument ( ' --exclude ' , ' -x ' , help = ' specify a comma-seperated-list of scripts to exclude. Do not include the .py extension in the name. ' )
parser . add_argument ( ' --exclude ' , ' -x ' , help = ' specify a comma-seperated-list of scripts to exclude. ' )
parser . add_argument ( ' --extended ' , action = ' store_true ' , help = ' run the extended test suite in addition to the basic tests ' )
parser . add_argument ( ' --extended ' , action = ' store_true ' , help = ' run the extended test suite in addition to the basic tests ' )
parser . add_argument ( ' --force ' , ' -f ' , action = ' store_true ' , help = ' run tests even on platforms where they are disabled by default (e.g. windows). ' )
parser . add_argument ( ' --force ' , ' -f ' , action = ' store_true ' , help = ' run tests even on platforms where they are disabled by default (e.g. windows). ' )
parser . add_argument ( ' --help ' , ' -h ' , ' -? ' , action = ' store_true ' , help = ' print help text and exit ' )
parser . add_argument ( ' --help ' , ' -h ' , ' -? ' , action = ' store_true ' , help = ' print help text and exit ' )
@ -172,8 +172,8 @@ def main():
parser . add_argument ( ' --quiet ' , ' -q ' , action = ' store_true ' , help = ' only print results summary and failure logs ' )
parser . add_argument ( ' --quiet ' , ' -q ' , action = ' store_true ' , help = ' only print results summary and failure logs ' )
args , unknown_args = parser . parse_known_args ( )
args , unknown_args = parser . parse_known_args ( )
# Create a set to store arguments and create the passon string
# args to be passed on always start with two dashes; tests are the remaining unknown args
tests = set ( arg for arg in unknown_args if arg [ : 2 ] != " -- " )
tests = [ arg for arg in unknown_args if arg [ : 2 ] != " -- " ]
passon_args = [ arg for arg in unknown_args if arg [ : 2 ] == " -- " ]
passon_args = [ arg for arg in unknown_args if arg [ : 2 ] == " -- " ]
# Read config generated by configure.
# Read config generated by configure.
@ -206,8 +206,13 @@ def main():
if tests :
if tests :
# Individual tests have been specified. Run specified tests that exist
# Individual tests have been specified. Run specified tests that exist
# in the ALL_SCRIPTS list. Accept the name with or without .py extension.
# in the ALL_SCRIPTS list. Accept the name with or without .py extension.
test_list = [ t for t in ALL_SCRIPTS if
tests = [ re . sub ( " \ .py$ " , " " , t ) + " .py " for t in tests ]
( t in tests or re . sub ( " .py$ " , " " , t ) in tests ) ]
test_list = [ ]
for t in tests :
if t in ALL_SCRIPTS :
test_list . append ( t )
else :
print ( " {} WARNING! {} Test ' {} ' not found in full test list. " . format ( BOLD [ 1 ] , BOLD [ 0 ] , t ) )
else :
else :
# No individual tests have been specified.
# No individual tests have been specified.
# Run all base tests, and optionally run extended tests.
# Run all base tests, and optionally run extended tests.
@ -219,9 +224,12 @@ def main():
# Remove the test cases that the user has explicitly asked to exclude.
# Remove the test cases that the user has explicitly asked to exclude.
if args . exclude :
if args . exclude :
for exclude_test in args . exclude . split ( ' , ' ) :
tests_excl = [ re . sub ( " \ .py$ " , " " , t ) + " .py " for t in args . exclude . split ( ' , ' ) ]
if exclude_test + " .py " in test_list :
for exclude_test in tests_excl :
test_list . remove ( exclude_test + " .py " )
if exclude_test in test_list :
test_list . remove ( exclude_test )
else :
print ( " {} WARNING! {} Test ' {} ' not found in current test list. " . format ( BOLD [ 1 ] , BOLD [ 0 ] , exclude_test ) )
if not test_list :
if not test_list :
print ( " No valid test scripts specified. Check that your test is in one "
print ( " No valid test scripts specified. Check that your test is in one "