156 score = re.compile(r"^Valid run, Score is (?P<score>[0-9]+)$", re.MULTILINE)
157 error = re.compile(r"VALIDATION ERROR")
158 success = re.compile(r"^Valid run, Score is [0-9]+$", re.MULTILINE)
159 matcher = ValuesMatcher(score, {'group' : 'SPECjbb2005', 'name' : 'score', 'score' : '<score>'})
160 classpath = ['jbb.jar', 'check.jar']
161 return Test("SPECjbb2005", ['spec.jbb.JBBmain', '-propfile', 'SPECjbb.props'] + benchArgs, [success], [error], [matcher], vmOpts=['-Xms3g', '-XX:+' + gc, '-XX:-UseCompressedOops', '-cp', os.pathsep.join(classpath)], defaultCwd=specjbb2005)
162
163 def getSPECjbb2013(benchArgs=None):
164
165 specjbb2013 = mx.get_env('SPECJBB2013')
166 if specjbb2013 is None or not exists(join(specjbb2013, 'specjbb2013.jar')):
167 mx.abort('Please set the SPECJBB2013 environment variable to a SPECjbb2013 directory')
168
169 jops = re.compile(r"^RUN RESULT: hbIR \(max attempted\) = [0-9]+, hbIR \(settled\) = [0-9]+, max-jOPS = (?P<max>[0-9]+), critical-jOPS = (?P<critical>[0-9]+)$", re.MULTILINE)
170 # error?
171 success = re.compile(r"org.spec.jbb.controller: Run finished", re.MULTILINE)
172 matcherMax = ValuesMatcher(jops, {'group' : 'SPECjbb2013', 'name' : 'max', 'score' : '<max>'})
173 matcherCritical = ValuesMatcher(jops, {'group' : 'SPECjbb2013', 'name' : 'critical', 'score' : '<critical>'})
174 return Test("SPECjbb2013", ['-jar', 'specjbb2013.jar', '-m', 'composite'] +
175 _noneAsEmptyList(benchArgs), [success], [], [matcherCritical, matcherMax],
176 vmOpts=['-Xmx6g', '-Xms6g', '-Xmn3g', '-XX:+UseParallelOldGC', '-XX:-UseAdaptiveSizePolicy', '-XX:-UseBiasedLocking', '-XX:-UseCompressedOops'], defaultCwd=specjbb2013)
177
178 def getSPECjbb2015(benchArgs=None):
179
180 specjbb2015 = mx.get_env('SPECJBB2015')
181 if specjbb2015 is None or not exists(join(specjbb2015, 'specjbb2015.jar')):
182 mx.abort('Please set the SPECJBB2015 environment variable to a SPECjbb2015 directory')
183
184 jops = re.compile(r"^RUN RESULT: hbIR \(max attempted\) = [0-9]+, hbIR \(settled\) = [0-9]+, max-jOPS = (?P<max>[0-9]+), critical-jOPS = (?P<critical>[0-9]+)$", re.MULTILINE)
185 # error?
186 success = re.compile(r"org.spec.jbb.controller: Run finished", re.MULTILINE)
187 matcherMax = ValuesMatcher(jops, {'group' : 'SPECjbb2015', 'name' : 'max', 'score' : '<max>'})
188 matcherCritical = ValuesMatcher(jops, {'group' : 'SPECjbb2015', 'name' : 'critical', 'score' : '<critical>'})
189 return Test("SPECjbb2015", ['-jar', 'specjbb2015.jar', '-m', 'composite'] +
190 _noneAsEmptyList(benchArgs), [success], [], [matcherCritical, matcherMax],
191 vmOpts=['-Xmx6g', '-Xms6g', '-Xmn3g', '-XX:+UseParallelOldGC', '-XX:-UseAdaptiveSizePolicy', '-XX:-UseBiasedLocking', '-XX:-UseCompressedOops'], defaultCwd=specjbb2015)
192
193 def getSPECjvm2008(benchArgs=None):
194
195 specjvm2008 = mx.get_env('SPECJVM2008')
196 if specjvm2008 is None or not exists(join(specjvm2008, 'SPECjvm2008.jar')):
197 mx.abort('Please set the SPECJVM2008 environment variable to a SPECjvm2008 directory')
198
199 score = re.compile(r"^(Score on|Noncompliant) (?P<benchmark>[a-zA-Z0-9\._]+)( result)?: (?P<score>[0-9]+((,|\.)[0-9]+)?)( SPECjvm2008 Base)? ops/m$", re.MULTILINE)
200 error = re.compile(r"^Errors in benchmark: ", re.MULTILINE)
201 # The ' ops/m' at the end of the success string is important : it's how you can tell valid and invalid runs apart
202 success = re.compile(r"^(Noncompliant c|C)omposite result: [0-9]+((,|\.)[0-9]+)?( SPECjvm2008 (Base|Peak))? ops/m$", re.MULTILINE)
203 matcher = ValuesMatcher(score, {'group' : 'SPECjvm2008', 'name' : '<benchmark>', 'score' : '<score>'})
204
205 return Test("SPECjvm2008", ['-jar', 'SPECjvm2008.jar'] + _noneAsEmptyList(benchArgs), [success], [error], [matcher], vmOpts=['-Xms3g', '-XX:+' + gc, '-XX:-UseCompressedOops'], defaultCwd=specjvm2008)
206
207 def getDacapos(level=SanityCheckLevel.Normal, gateBuildLevel=None, dacapoArgs=None, extraVmArguments=None):
208 checks = []
209
210 for (bench, ns) in dacapoSanityWarmup.items():
211 if ns[level] > 0:
|
156 score = re.compile(r"^Valid run, Score is (?P<score>[0-9]+)$", re.MULTILINE)
157 error = re.compile(r"VALIDATION ERROR")
158 success = re.compile(r"^Valid run, Score is [0-9]+$", re.MULTILINE)
159 matcher = ValuesMatcher(score, {'group' : 'SPECjbb2005', 'name' : 'score', 'score' : '<score>'})
160 classpath = ['jbb.jar', 'check.jar']
161 return Test("SPECjbb2005", ['spec.jbb.JBBmain', '-propfile', 'SPECjbb.props'] + benchArgs, [success], [error], [matcher], vmOpts=['-Xms3g', '-XX:+' + gc, '-XX:-UseCompressedOops', '-cp', os.pathsep.join(classpath)], defaultCwd=specjbb2005)
162
163 def getSPECjbb2013(benchArgs=None):
164
165 specjbb2013 = mx.get_env('SPECJBB2013')
166 if specjbb2013 is None or not exists(join(specjbb2013, 'specjbb2013.jar')):
167 mx.abort('Please set the SPECJBB2013 environment variable to a SPECjbb2013 directory')
168
169 jops = re.compile(r"^RUN RESULT: hbIR \(max attempted\) = [0-9]+, hbIR \(settled\) = [0-9]+, max-jOPS = (?P<max>[0-9]+), critical-jOPS = (?P<critical>[0-9]+)$", re.MULTILINE)
170 # error?
171 success = re.compile(r"org.spec.jbb.controller: Run finished", re.MULTILINE)
172 matcherMax = ValuesMatcher(jops, {'group' : 'SPECjbb2013', 'name' : 'max', 'score' : '<max>'})
173 matcherCritical = ValuesMatcher(jops, {'group' : 'SPECjbb2013', 'name' : 'critical', 'score' : '<critical>'})
174 return Test("SPECjbb2013", ['-jar', 'specjbb2013.jar', '-m', 'composite'] +
175 _noneAsEmptyList(benchArgs), [success], [], [matcherCritical, matcherMax],
176 vmOpts=['-Xmx6g', '-Xms6g', '-Xmn3g', '-XX:+UseParallelGC', '-XX:-UseAdaptiveSizePolicy', '-XX:-UseBiasedLocking', '-XX:-UseCompressedOops'], defaultCwd=specjbb2013)
177
178 def getSPECjbb2015(benchArgs=None):
179
180 specjbb2015 = mx.get_env('SPECJBB2015')
181 if specjbb2015 is None or not exists(join(specjbb2015, 'specjbb2015.jar')):
182 mx.abort('Please set the SPECJBB2015 environment variable to a SPECjbb2015 directory')
183
184 jops = re.compile(r"^RUN RESULT: hbIR \(max attempted\) = [0-9]+, hbIR \(settled\) = [0-9]+, max-jOPS = (?P<max>[0-9]+), critical-jOPS = (?P<critical>[0-9]+)$", re.MULTILINE)
185 # error?
186 success = re.compile(r"org.spec.jbb.controller: Run finished", re.MULTILINE)
187 matcherMax = ValuesMatcher(jops, {'group' : 'SPECjbb2015', 'name' : 'max', 'score' : '<max>'})
188 matcherCritical = ValuesMatcher(jops, {'group' : 'SPECjbb2015', 'name' : 'critical', 'score' : '<critical>'})
189 return Test("SPECjbb2015", ['-jar', 'specjbb2015.jar', '-m', 'composite'] +
190 _noneAsEmptyList(benchArgs), [success], [], [matcherCritical, matcherMax],
191 vmOpts=['-Xmx6g', '-Xms6g', '-Xmn3g', '-XX:+UseParallelGC', '-XX:-UseAdaptiveSizePolicy', '-XX:-UseBiasedLocking', '-XX:-UseCompressedOops'], defaultCwd=specjbb2015)
192
193 def getSPECjvm2008(benchArgs=None):
194
195 specjvm2008 = mx.get_env('SPECJVM2008')
196 if specjvm2008 is None or not exists(join(specjvm2008, 'SPECjvm2008.jar')):
197 mx.abort('Please set the SPECJVM2008 environment variable to a SPECjvm2008 directory')
198
199 score = re.compile(r"^(Score on|Noncompliant) (?P<benchmark>[a-zA-Z0-9\._]+)( result)?: (?P<score>[0-9]+((,|\.)[0-9]+)?)( SPECjvm2008 Base)? ops/m$", re.MULTILINE)
200 error = re.compile(r"^Errors in benchmark: ", re.MULTILINE)
201 # The ' ops/m' at the end of the success string is important : it's how you can tell valid and invalid runs apart
202 success = re.compile(r"^(Noncompliant c|C)omposite result: [0-9]+((,|\.)[0-9]+)?( SPECjvm2008 (Base|Peak))? ops/m$", re.MULTILINE)
203 matcher = ValuesMatcher(score, {'group' : 'SPECjvm2008', 'name' : '<benchmark>', 'score' : '<score>'})
204
205 return Test("SPECjvm2008", ['-jar', 'SPECjvm2008.jar'] + _noneAsEmptyList(benchArgs), [success], [error], [matcher], vmOpts=['-Xms3g', '-XX:+' + gc, '-XX:-UseCompressedOops'], defaultCwd=specjvm2008)
206
207 def getDacapos(level=SanityCheckLevel.Normal, gateBuildLevel=None, dacapoArgs=None, extraVmArguments=None):
208 checks = []
209
210 for (bench, ns) in dacapoSanityWarmup.items():
211 if ns[level] > 0:
|