Mercurial > hg > truffle
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) |