comparison mx/mx_graal.py @ 18888:31960077ea9d

Specify jacoco project includes/excludes in suite.py
author Paul Woegerer <paul.woegerer@oracle.com>
date Wed, 21 Jan 2015 12:02:35 +0100
parents 19d99eec8876
children 9afee75cee46
comparison
equal deleted inserted replaced
18887:19d99eec8876 18888:31960077ea9d
1021 mx.make_eclipse_launch(args, 'graal-' + build, name=None, deps=mx.project('com.oracle.graal.hotspot').all_deps([], True)) 1021 mx.make_eclipse_launch(args, 'graal-' + build, name=None, deps=mx.project('com.oracle.graal.hotspot').all_deps([], True))
1022 if _jacoco == 'on' or _jacoco == 'append': 1022 if _jacoco == 'on' or _jacoco == 'append':
1023 jacocoagent = mx.library("JACOCOAGENT", True) 1023 jacocoagent = mx.library("JACOCOAGENT", True)
1024 # Exclude all compiler tests and snippets 1024 # Exclude all compiler tests and snippets
1025 1025
1026 baseExcludes = ['com.oracle.graal.compiler.test', 'com.oracle.graal.jtt', 'com.oracle.graal.api.meta.test', 'com.oracle.truffle.api.test', \ 1026 includes = ['com.oracle.graal.*']
1027 'com.oracle.truffle.api.dsl.test', 'com.oracle.graal.truffle', 'com.oracle.graal.truffle.test', 'com.oracle.graal.compiler.hsail.test'] 1027 baseExcludes = []
1028 for p in mx.projects():
1029 projsetting = getattr(p, 'jacoco', '')
1030 if projsetting == 'exclude':
1031 baseExcludes.append(p.name)
1032 if projsetting == 'include':
1033 includes.append(p.name + '.*')
1034
1028 def _filter(l): 1035 def _filter(l):
1029 # filter out specific classes which are already covered by a baseExclude package 1036 # filter out specific classes which are already covered by a baseExclude package
1030 return [clazz for clazz in l if not any([clazz.startswith(package) for package in baseExcludes])] 1037 return [clazz for clazz in l if not any([clazz.startswith(package) for package in baseExcludes])]
1031 excludes = [] 1038 excludes = []
1032 for p in mx.projects(): 1039 for p in mx.projects():
1033 excludes += _filter(_find_classes_with_annotations(p, None, ['@Snippet', '@ClassSubstitution', '@Test'], includeInnerClasses=True).keys()) 1040 excludes += _filter(_find_classes_with_annotations(p, None, ['@Snippet', '@ClassSubstitution', '@Test'], includeInnerClasses=True).keys())
1034 excludes += _filter(p.find_classes_with_matching_source_line(None, lambda line: 'JaCoCo Exclude' in line, includeInnerClasses=True).keys()) 1041 excludes += _filter(p.find_classes_with_matching_source_line(None, lambda line: 'JaCoCo Exclude' in line, includeInnerClasses=True).keys())
1035 1042
1036 excludes += [package + '.*' for package in baseExcludes] 1043 excludes += [package + '.*' for package in baseExcludes]
1037 includes = ['com.oracle.graal.*']
1038 agentOptions = { 1044 agentOptions = {
1039 'append' : 'true' if _jacoco == 'append' else 'false', 1045 'append' : 'true' if _jacoco == 'append' else 'false',
1040 'bootclasspath' : 'true', 1046 'bootclasspath' : 'true',
1041 'includes' : ':'.join(includes), 1047 'includes' : ':'.join(includes),
1042 'excludes' : ':'.join(excludes), 1048 'excludes' : ':'.join(excludes),
2131 out = 'coverage' 2137 out = 'coverage'
2132 if len(args) == 1: 2138 if len(args) == 1:
2133 out = args[0] 2139 out = args[0]
2134 elif len(args) > 1: 2140 elif len(args) > 1:
2135 mx.abort('jacocoreport takes only one argument : an output directory') 2141 mx.abort('jacocoreport takes only one argument : an output directory')
2136 mx.run_java(['-jar', jacocoreport.get_path(True), '--in', 'jacoco.exec', '--out', out] + [p.dir for p in mx.projects()]) 2142
2143 includes = ['com.oracle.graal']
2144 for p in mx.projects():
2145 projsetting = getattr(p, 'jacoco', '')
2146 if projsetting == 'include':
2147 includes.append(p.name)
2148
2149 includedirs = set()
2150 for p in mx.projects():
2151 for include in includes:
2152 if include in p.dir:
2153 includedirs.add(p.dir)
2154
2155 for i in includedirs:
2156 bindir = i + '/bin'
2157 if not os.path.exists(bindir):
2158 os.makedirs(bindir)
2159
2160 mx.run_java(['-jar', jacocoreport.get_path(True), '--in', 'jacoco.exec', '--out', out] + sorted(includedirs))
2137 2161
2138 def sl(args): 2162 def sl(args):
2139 """run an SL program""" 2163 """run an SL program"""
2140 vmArgs, slArgs = _extract_VM_args(args) 2164 vmArgs, slArgs = _extract_VM_args(args)
2141 vm(vmArgs + ['-cp', mx.classpath(["TRUFFLE", "com.oracle.truffle.sl"]), "com.oracle.truffle.sl.SLMain"] + slArgs) 2165 vm(vmArgs + ['-cp', mx.classpath(["TRUFFLE", "com.oracle.truffle.sl"]), "com.oracle.truffle.sl.SLMain"] + slArgs)