bazel skyframe: remove call to PackageFactory.createPackageForTesting
...by going through the skyframe-based loading phase, as all good tests should.
PiperOrigin-RevId: 334454175
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
index effc2e3..883ed4d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
@@ -23,18 +23,16 @@
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
import com.google.devtools.build.lib.skyframe.TransitiveBaseTraversalFunction.TargetAndErrorIfAnyImpl;
+import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils;
import com.google.devtools.build.lib.util.GroupedList;
import com.google.devtools.build.lib.util.GroupedList.GroupedListHelper;
-import com.google.devtools.build.lib.vfs.Path;
-import com.google.devtools.build.lib.vfs.RootedPath;
+import com.google.devtools.build.skyframe.EvaluationResult;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.ValueOrException2;
import com.google.devtools.build.skyframe.ValueOrUntypedException;
import java.util.concurrent.atomic.AtomicBoolean;
-import net.starlark.java.eval.StarlarkSemantics;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -49,11 +47,8 @@
public void noRepeatedLabelVisitationForTransitiveTraversalFunction() throws Exception {
// Create a basic package with a target //foo:foo.
Label label = Label.parseAbsolute("//foo:foo", ImmutableMap.of());
- Package pkg =
- scratchPackage(
- "workspace",
- label.getPackageIdentifier(),
- "sh_library(name = '" + label.getName() + "')");
+ scratch.file("foo/BUILD", "sh_library(name = '" + label.getName() + "')");
+ Package pkg = loadPackage(label.getPackageIdentifier());
TargetAndErrorIfAnyImpl targetAndErrorIfAny =
new TargetAndErrorIfAnyImpl(
/*packageLoadedSuccessfully=*/ true,
@@ -104,11 +99,9 @@
@Test
public void multipleErrorsForTransitiveTraversalFunction() throws Exception {
Label label = Label.parseAbsolute("//foo:foo", ImmutableMap.of());
- Package pkg =
- scratchPackage(
- "workspace",
- label.getPackageIdentifier(),
- "sh_library(name = '" + label.getName() + "', deps = [':bar', ':baz'])");
+ scratch.file(
+ "foo/BUILD", "sh_library(name = '" + label.getName() + "', deps = [':bar', ':baz'])");
+ Package pkg = loadPackage(label.getPackageIdentifier());
TargetAndErrorIfAnyImpl targetAndErrorIfAny =
new TargetAndErrorIfAnyImpl(
/*packageLoadedSuccessfully=*/ true,
@@ -156,11 +149,9 @@
@Test
public void selfErrorWins() throws Exception {
Label label = Label.parseAbsolute("//foo:foo", ImmutableMap.of());
- Package pkg =
- scratchPackage(
- "workspace",
- label.getPackageIdentifier(),
- "sh_library(name = '" + label.getName() + "', deps = [':bar', ':baz'])");
+ scratch.file(
+ "foo/BUILD", "sh_library(name = '" + label.getName() + "', deps = [':bar', ':baz'])");
+ Package pkg = loadPackage(label.getPackageIdentifier());
TargetAndErrorIfAnyImpl targetAndErrorIfAny =
new TargetAndErrorIfAnyImpl(
/*packageLoadedSuccessfully=*/ true,
@@ -195,22 +186,16 @@
exn, NoSuchPackageException.class, NoSuchTargetException.class);
}
- private Package scratchPackage(String workspaceName, PackageIdentifier packageId, String... lines)
- throws Exception {
- Path buildFile = scratch.file("" + packageId.getSourceRoot() + "/BUILD", lines);
- Package.Builder externalPkg =
- Package.newExternalPackageBuilder(
- DefaultPackageSettings.INSTANCE,
- RootedPath.toRootedPath(root, buildFile.getRelative("WORKSPACE")),
- "TESTING",
- StarlarkSemantics.DEFAULT);
- externalPkg.setWorkspaceName(workspaceName);
- return pkgFactory.createPackageForTesting(
- packageId,
- externalPkg.build(),
- RootedPath.toRootedPath(root, buildFile),
- packageIdentifier -> buildFile,
- reporter,
- StarlarkSemantics.DEFAULT);
+ /* Invokes the loading phase, using Skyframe. */
+ private Package loadPackage(PackageIdentifier pkgid)
+ throws InterruptedException, NoSuchPackageException {
+ SkyKey key = PackageValue.key(pkgid);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), key, /*keepGoing=*/ false, reporter);
+ if (result.hasError()) {
+ throw (NoSuchPackageException) result.getError(key).getException();
+ }
+ return result.get(key).getPackage();
}
}