def test(parser, args): if args.list: print "Available tests:" colify(spack.test.list_tests(), indent=2) else: spack.test.run(args.names, args.verbose)
def run(names, verbose=False): """Run tests with the supplied names. Names should be a list. If it's empty, run ALL of Spack's tests.""" verbosity = 1 if not verbose else 2 if not names: names = test_names else: for test in names: if test not in test_names: tty.error("%s is not a valid spack test name." % test, "Valid names are:") colify(test_names, indent=4) sys.exit(1) runner = unittest.TextTestRunner(verbosity=verbosity) testsRun = errors = failures = skipped = 0 for test in names: module = 'spack.test.' + test print module suite = unittest.defaultTestLoader.loadTestsFromName(module) tty.msg("Running test: %s" % test) result = runner.run(suite) testsRun += result.testsRun errors += len(result.errors) failures += len(result.failures) skipped += len(result.skipped) succeeded = not errors and not failures tty.msg("Tests Complete.", "%5d tests run" % testsRun, "%5d skipped" % skipped, "%5d failures" % failures, "%5d errors" % errors) if not errors and not failures: tty.info("OK", format='g') else: tty.info("FAIL", format='r') sys.exit(1)
def info(parser, args): package = packages.get(args.name) print "Package: ", package.name print "Homepage: ", package.homepage print "Download: ", package.url print print "Safe versions: " if package.versions: colify(reversed(sorted(package.versions)), indent=4) else: print "None. Use spack versions %s to get a list of downloadable versions." % package.name print print "Dependencies:" if package.dependencies: colify(package.dependencies, indent=4) else: print " None" print print "Virtual packages: " if package.provided: for spec, when in package.provided.items(): print " %s provides %s" % (when, spec) else: print " None" print print "Description:" if package.__doc__: doc = re.sub(r'\s+', ' ', package.__doc__) lines = textwrap.wrap(doc, 72) for line in lines: print " " + line else: print " None"
def versions(parser, args): pkg = packages.get(args.package) colify(reversed(pkg.fetch_available_versions()))
def list(parser, args): # Print all the package names in columns colify(packages.all_package_names())
def compilers(parser, args): tty.msg("Supported compilers") colify(spack.compilers.supported_compilers(), indent=4)
def providers(parser, args): for spec in spack.cmd.parse_specs(args.vpkg_spec): colify(sorted(spack.packages.providers_for(spec)), indent=4)