Search in sources :

Example 11 with Package

use of com.google.devtools.build.lib.packages.Package in project bazel by bazelbuild.

the class PackageFactoryApparatus method evalAndReturnGlobCache.

/**
   * Evaluates the {@code buildFileAST} into a {@link Package}.
   */
public Pair<Package, GlobCache> evalAndReturnGlobCache(String packageName, Path buildFile, BuildFileAST buildFileAST) throws InterruptedException {
    PackageIdentifier packageId = PackageIdentifier.createInMainRepo(packageName);
    GlobCache globCache = new GlobCache(buildFile.getParentDirectory(), packageId, getPackageLocator(), null, TestUtils.getPool(), -1);
    LegacyGlobber globber = PackageFactory.createLegacyGlobber(globCache);
    Package externalPkg = factory.newExternalPackageBuilder(buildFile.getParentDirectory().getRelative("WORKSPACE"), "TESTING").build();
    Builder resultBuilder = factory.evaluateBuildFile(externalPkg.getWorkspaceName(), packageId, buildFileAST, buildFile, globber, ImmutableList.<Event>of(), ConstantRuleVisibility.PUBLIC, false, new MakeEnvironment.Builder(), ImmutableMap.<String, Extension>of(), ImmutableList.<Label>of());
    Package result = resultBuilder.build();
    Event.replayEventsOn(eventHandler, result.getEvents());
    return Pair.of(result, globCache);
}
Also used : PackageIdentifier(com.google.devtools.build.lib.cmdline.PackageIdentifier) LegacyGlobber(com.google.devtools.build.lib.packages.PackageFactory.LegacyGlobber) Builder(com.google.devtools.build.lib.packages.Package.Builder) MakeEnvironment(com.google.devtools.build.lib.packages.MakeEnvironment) Package(com.google.devtools.build.lib.packages.Package) GlobCache(com.google.devtools.build.lib.packages.GlobCache)

Example 12 with Package

use of com.google.devtools.build.lib.packages.Package in project bazel by bazelbuild.

the class PackageFactoryTestBase method assertGlobProducesError.

protected void assertGlobProducesError(String pattern, boolean errorExpected) throws Exception {
    events.setFailFast(false);
    Package pkg = evaluateGlob(ImmutableList.of(pattern), Collections.<String>emptyList(), false, "").first;
    assertEquals(errorExpected, pkg.containsErrors());
    boolean foundError = false;
    for (Event event : events.collector()) {
        if (event.getMessage().contains("glob")) {
            if (!errorExpected) {
                fail("error not expected for glob pattern " + pattern + ", but got: " + event);
                return;
            }
            foundError = errorExpected;
            break;
        }
    }
    assertEquals(errorExpected, foundError);
}
Also used : Event(com.google.devtools.build.lib.events.Event) Package(com.google.devtools.build.lib.packages.Package)

Example 13 with Package

use of com.google.devtools.build.lib.packages.Package in project bazel by bazelbuild.

the class PackageFactoryTestBase method expectEvalError.

protected void expectEvalError(String expectedError, String... content) throws Exception {
    events.setFailFast(false);
    Path file = scratch.file("/pkg/BUILD", content);
    Package pkg = packages.eval("pkg", file);
    assertTrue("Expected evaluation error, but none was not reported", pkg.containsErrors());
    events.assertContainsError(expectedError);
}
Also used : Path(com.google.devtools.build.lib.vfs.Path) Package(com.google.devtools.build.lib.packages.Package)

Example 14 with Package

use of com.google.devtools.build.lib.packages.Package in project bazel by bazelbuild.

the class PackageFactoryTestBase method isValidPackageName.

protected boolean isValidPackageName(String packageName) throws Exception {
    // Write a license decl just in case it's a third_party package:
    Path buildFile = scratch.file(getPathPrefix() + "/" + packageName + "/BUILD", "licenses(['notice'])");
    Package pkg = packages.createPackage(packageName, buildFile);
    return !pkg.containsErrors();
}
Also used : Path(com.google.devtools.build.lib.vfs.Path) Package(com.google.devtools.build.lib.packages.Package)

Example 15 with Package

use of com.google.devtools.build.lib.packages.Package in project bazel by bazelbuild.

the class PackageFactoryTestBase method assertGlobFails.

/********************************************************************
   *                                                                  *
   *              Test "glob" function in build language              *
   *                                                                  *
   ********************************************************************/
protected void assertGlobFails(String globCallExpression, String expectedError) throws Exception {
    Package pkg = buildPackageWithGlob(globCallExpression);
    events.assertContainsError(expectedError);
    assertTrue(pkg.containsErrors());
}
Also used : Package(com.google.devtools.build.lib.packages.Package)

Aggregations

Package (com.google.devtools.build.lib.packages.Package)61 SkyKey (com.google.devtools.build.skyframe.SkyKey)25 Test (org.junit.Test)20 PackageIdentifier (com.google.devtools.build.lib.cmdline.PackageIdentifier)14 NoSuchPackageException (com.google.devtools.build.lib.packages.NoSuchPackageException)14 Label (com.google.devtools.build.lib.cmdline.Label)13 Path (com.google.devtools.build.lib.vfs.Path)13 RootedPath (com.google.devtools.build.lib.vfs.RootedPath)13 Target (com.google.devtools.build.lib.packages.Target)12 NoSuchTargetException (com.google.devtools.build.lib.packages.NoSuchTargetException)11 Nullable (javax.annotation.Nullable)10 BuildFileContainsErrorsException (com.google.devtools.build.lib.packages.BuildFileContainsErrorsException)8 ImmutableMap (com.google.common.collect.ImmutableMap)7 ConfiguredTarget (com.google.devtools.build.lib.analysis.ConfiguredTarget)5 BuildFileNotFoundException (com.google.devtools.build.lib.packages.BuildFileNotFoundException)5 LinkedHashSet (java.util.LinkedHashSet)5 LabelSyntaxException (com.google.devtools.build.lib.cmdline.LabelSyntaxException)4 SkyValue (com.google.devtools.build.skyframe.SkyValue)4 InvalidConfigurationException (com.google.devtools.build.lib.analysis.config.InvalidConfigurationException)3 Attribute (com.google.devtools.build.lib.packages.Attribute)3