comparison mx/mx_graal.py @ 15656:fcf6e5683082

mx unittest: add --eager-stacktrace.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 14 May 2014 20:59:27 +0200
parents ec29b2d3bdb4
children 50740bac9679
comparison
equal deleted inserted replaced
15655:ec29b2d3bdb4 15656:fcf6e5683082
955 for c in classes: 955 for c in classes:
956 f_testfile.write(c + '\n') 956 f_testfile.write(c + '\n')
957 f_testfile.close() 957 f_testfile.close()
958 harness(projectscp, vmArgs) 958 harness(projectscp, vmArgs)
959 959
960 def _unittest(args, annotations, prefixcp="", whitelist=None, verbose=False, enable_timing=False, regex=None, color=False): 960 def _unittest(args, annotations, prefixcp="", whitelist=None, verbose=False, enable_timing=False, regex=None, color=False, eager_stacktrace=False):
961 mxdir = dirname(__file__) 961 mxdir = dirname(__file__)
962 name = 'JUnitWrapper' 962 name = 'JUnitWrapper'
963 javaSource = join(mxdir, name + '.java') 963 javaSource = join(mxdir, name + '.java')
964 javaClass = join(mxdir, name + '.class') 964 javaClass = join(mxdir, name + '.class')
965 testfile = os.environ.get('MX_TESTFILE', None) 965 testfile = os.environ.get('MX_TESTFILE', None)
976 coreArgs.append('-JUnitVerbose') 976 coreArgs.append('-JUnitVerbose')
977 if enable_timing: 977 if enable_timing:
978 coreArgs.append('-JUnitEnableTiming') 978 coreArgs.append('-JUnitEnableTiming')
979 if color: 979 if color:
980 coreArgs.append('-JUnitColor') 980 coreArgs.append('-JUnitColor')
981 if eager_stacktrace:
982 coreArgs.append('-JUnitEagerStackTrace')
981 983
982 984
983 def harness(projectscp, vmArgs): 985 def harness(projectscp, vmArgs):
984 if _get_vm() != 'graal': 986 if _get_vm() != 'graal':
985 prefixArgs = ['-esa', '-ea'] 987 prefixArgs = ['-esa', '-ea']
1007 in the given whitelist 1009 in the given whitelist
1008 --verbose enable verbose JUnit output 1010 --verbose enable verbose JUnit output
1009 --enable-timing enable JUnit test timing 1011 --enable-timing enable JUnit test timing
1010 --regex <regex> run only testcases matching a regular expression 1012 --regex <regex> run only testcases matching a regular expression
1011 --color enable colors output 1013 --color enable colors output
1014 --eager-stacktrace print stacktrace eagerly
1012 1015
1013 To avoid conflicts with VM options '--' can be used as delimiter. 1016 To avoid conflicts with VM options '--' can be used as delimiter.
1014 1017
1015 If filters are supplied, only tests whose fully qualified name 1018 If filters are supplied, only tests whose fully qualified name
1016 includes a filter as a substring are run. 1019 includes a filter as a substring are run.
1048 parser.add_argument('--whitelist', help='run testcases specified in whitelist only', metavar='<path>') 1051 parser.add_argument('--whitelist', help='run testcases specified in whitelist only', metavar='<path>')
1049 parser.add_argument('--verbose', help='enable verbose JUnit output', action='store_true') 1052 parser.add_argument('--verbose', help='enable verbose JUnit output', action='store_true')
1050 parser.add_argument('--enable-timing', help='enable JUnit test timing', action='store_true') 1053 parser.add_argument('--enable-timing', help='enable JUnit test timing', action='store_true')
1051 parser.add_argument('--regex', help='run only testcases matching a regular expression', metavar='<regex>') 1054 parser.add_argument('--regex', help='run only testcases matching a regular expression', metavar='<regex>')
1052 parser.add_argument('--color', help='enable color output', action='store_true') 1055 parser.add_argument('--color', help='enable color output', action='store_true')
1056 parser.add_argument('--eager-stacktrace', help='print stacktrace eagerly', action='store_true')
1053 1057
1054 ut_args = [] 1058 ut_args = []
1055 delimiter = False 1059 delimiter = False
1056 # check for delimiter 1060 # check for delimiter
1057 while len(args) > 0: 1061 while len(args) > 0:
1074 with open(join(_graal_home, parsed_args.whitelist)) as fp: 1078 with open(join(_graal_home, parsed_args.whitelist)) as fp:
1075 whitelist = [re.compile(fnmatch.translate(l.rstrip())) for l in fp.readlines() if not l.startswith('#')] 1079 whitelist = [re.compile(fnmatch.translate(l.rstrip())) for l in fp.readlines() if not l.startswith('#')]
1076 except IOError: 1080 except IOError:
1077 mx.log('warning: could not read whitelist: ' + parsed_args.whitelist) 1081 mx.log('warning: could not read whitelist: ' + parsed_args.whitelist)
1078 1082
1079 _unittest(args, ['@Test', '@Parameters'], whitelist=whitelist, verbose=parsed_args.verbose, enable_timing=parsed_args.enable_timing, regex=parsed_args.regex, color=parsed_args.color) 1083 _unittest(args, ['@Test', '@Parameters'], whitelist=whitelist, verbose=parsed_args.verbose, enable_timing=parsed_args.enable_timing, regex=parsed_args.regex, color=parsed_args.color, eager_stacktrace=parsed_args.eager_stacktrace)
1080 1084
1081 def shortunittest(args): 1085 def shortunittest(args):
1082 """alias for 'unittest --whitelist test/whitelist_shortunittest.txt'{0}""" 1086 """alias for 'unittest --whitelist test/whitelist_shortunittest.txt'{0}"""
1083 1087
1084 args = ['--whitelist', 'test/whitelist_shortunittest.txt'] + args 1088 args = ['--whitelist', 'test/whitelist_shortunittest.txt'] + args