Mercurial > hg > truffle
comparison mx/mx_graal.py @ 14546:942c4daa9db9
added findbugs command to mx
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Sat, 15 Mar 2014 01:42:27 +0100 |
parents | 10e07aaeb54f |
children | ff2095ec7bdb |
comparison
equal
deleted
inserted
replaced
14545:4877b0cb446f | 14546:942c4daa9db9 |
---|---|
1636 err=subprocess.STDOUT) | 1636 err=subprocess.STDOUT) |
1637 | 1637 |
1638 valueMap = parser.parse(output.getvalue()) | 1638 valueMap = parser.parse(output.getvalue()) |
1639 return valueMap | 1639 return valueMap |
1640 | 1640 |
1641 def findbugs(args): | |
1642 '''run FindBugs against non-test Java projects''' | |
1643 findBugsHome = mx.get_env('FINDBUGS_HOME', None) | |
1644 if findBugsHome: | |
1645 findbugsJar = join(findBugsHome, 'lib', 'findbugs.jar') | |
1646 else: | |
1647 findbugsLib = join(_graal_home, 'lib', 'findbugs-3.0.0') | |
1648 if not exists(findbugsLib): | |
1649 tmp = tempfile.mkdtemp(prefix='findbugs-download-tmp', dir=_graal_home) | |
1650 try: | |
1651 findbugsDist = join(tmp, 'findbugs.zip') | |
1652 mx.download(findbugsDist, ['http://sourceforge.net/projects/findbugs/files/findbugs/3.0.0/findbugs-3.0.0-dev-20131204-e3cbbd5.zip']) | |
1653 with zipfile.ZipFile(findbugsDist) as zf: | |
1654 candidates = [e for e in zf.namelist() if e.endswith('/lib/findbugs.jar')] | |
1655 assert len(candidates) == 1, candidates | |
1656 libDirInZip = os.path.dirname(candidates[0]) | |
1657 zf.extractall(tmp) | |
1658 shutil.copytree(join(tmp, libDirInZip), findbugsLib) | |
1659 finally: | |
1660 shutil.rmtree(tmp) | |
1661 findbugsJar = join(findbugsLib, 'findbugs.jar') | |
1662 assert exists(findbugsJar) | |
1663 nonTestProjects = [p for p in mx.projects() if not p.name.endswith('.test') and not p.name.endswith('.jtt')] | |
1664 outputDirs = [p.output_dir() for p in nonTestProjects] | |
1665 findbugsResults = join(_graal_home, 'findbugs.results') | |
1666 exitcode = mx.run_java(['-jar', findbugsJar, '-textui', '-low', '-maxRank', '15', '-exclude', join(_graal_home, 'graal', 'findbugsExcludeFilter.xml'), | |
1667 '-auxclasspath', mx.classpath([p.name for p in nonTestProjects]), '-output', findbugsResults, '-progress', '-exitcode'] + args + outputDirs, nonZeroIsFatal=False) | |
1668 if exitcode != 0: | |
1669 with open(findbugsResults) as fp: | |
1670 mx.log(fp.read()) | |
1671 os.unlink(findbugsResults) | |
1672 return exitcode | |
1641 | 1673 |
1642 def mx_init(suite): | 1674 def mx_init(suite): |
1643 commands = { | 1675 commands = { |
1644 'build': [build, ''], | 1676 'build': [build, ''], |
1645 'buildvars': [buildvars, ''], | 1677 'buildvars': [buildvars, ''], |
1646 'buildvms': [buildvms, '[-options]'], | 1678 'buildvms': [buildvms, '[-options]'], |
1647 'c1visualizer' : [c1visualizer, ''], | 1679 'c1visualizer' : [c1visualizer, ''], |
1648 'clean': [clean, ''], | 1680 'clean': [clean, ''], |
1681 'findbugs': [findbugs, ''], | |
1649 'generateZshCompletion' : [generateZshCompletion, ''], | 1682 'generateZshCompletion' : [generateZshCompletion, ''], |
1650 'hsdis': [hsdis, '[att]'], | 1683 'hsdis': [hsdis, '[att]'], |
1651 'hcfdis': [hcfdis, ''], | 1684 'hcfdis': [hcfdis, ''], |
1652 'igv' : [igv, ''], | 1685 'igv' : [igv, ''], |
1653 'jdkhome': [print_jdkhome, ''], | 1686 'jdkhome': [print_jdkhome, ''], |