Document that ActionAnalysisMetadata#getOwner() is never null, add some Preconditions checks to make that more clear, and ensure that ActionOwner's fields are never null except for the SYSTEM_ACTION_OWNER wart.
Also do some drive-by serialization annotation clean-ups and other housekeeping.
PiperOrigin-RevId: 312336006
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionAnalysisMetadata.java b/src/main/java/com/google/devtools/build/lib/actions/ActionAnalysisMetadata.java
index 1cc14bf..4141183 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionAnalysisMetadata.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionAnalysisMetadata.java
@@ -38,11 +38,7 @@
/**
* Returns the owner of this executable if this executable can supply verbose information. This is
- * typically the rule that constructed it; see ActionOwner class comment for details. Returns
- * {@code null} if no owner can be determined.
- *
- * <p>If this executable does not supply verbose information, this function may throw an
- * IllegalStateException.
+ * typically the rule that constructed it; see ActionOwner class comment for details.
*/
ActionOwner getOwner();
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java b/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java
index 17c8f9b..bf4d4bd 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java
@@ -13,16 +13,17 @@
// limitations under the License.
package com.google.devtools.build.lib.actions;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.auto.value.AutoValue;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.AspectDescriptor;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.syntax.Location;
import javax.annotation.Nullable;
@@ -34,30 +35,53 @@
* analysis and actions packages, the RuleConfiguredTarget provides an instance of this class.
*/
@AutoValue
-@AutoCodec
@Immutable
public abstract class ActionOwner {
/** An action owner for special cases. Usage is strongly discouraged. */
+ @SerializationConstant
public static final ActionOwner SYSTEM_ACTION_OWNER =
- ActionOwner.create(
+ ActionOwner.createInternal(
null,
- ImmutableList.<AspectDescriptor>of(),
- null,
+ ImmutableList.of(),
+ Location.BUILTIN,
"system",
"empty target kind",
"system",
null,
null,
- ImmutableMap.<String, String>of(),
+ ImmutableMap.of(),
null);
- @AutoCodec.Instantiator
public static ActionOwner create(
+ Label label,
+ ImmutableList<AspectDescriptor> aspectDescriptors,
+ Location location,
+ String mnemonic,
+ String targetKind,
+ String configurationChecksum,
+ BuildConfigurationEvent configuration,
+ @Nullable String additionalProgressInfo,
+ ImmutableMap<String, String> execProperties,
+ @Nullable PlatformInfo executionPlatform) {
+ return createInternal(
+ checkNotNull(label),
+ aspectDescriptors,
+ checkNotNull(location),
+ checkNotNull(mnemonic),
+ checkNotNull(targetKind),
+ checkNotNull(configurationChecksum),
+ checkNotNull(configuration),
+ additionalProgressInfo,
+ execProperties,
+ executionPlatform);
+ }
+
+ private static ActionOwner createInternal(
@Nullable Label label,
ImmutableList<AspectDescriptor> aspectDescriptors,
- @Nullable Location location,
- @Nullable String mnemonic,
- @Nullable String targetKind,
+ Location location,
+ String mnemonic,
+ String targetKind,
String configurationChecksum,
@Nullable BuildConfigurationEvent configuration,
@Nullable String additionalProgressInfo,
@@ -68,7 +92,7 @@
label,
aspectDescriptors,
mnemonic,
- Preconditions.checkNotNull(configurationChecksum),
+ checkNotNull(configurationChecksum),
configuration,
targetKind,
additionalProgressInfo,
@@ -76,18 +100,16 @@
executionPlatform);
}
- /** Returns the location of this ActionOwner, if any; null otherwise. */
- @Nullable
+ /** Returns the location of this ActionOwner. */
public abstract Location getLocation();
- /** Returns the label for this ActionOwner, if any; null otherwise. */
+ /** Returns the label for this ActionOwner, or null if the {@link #SYSTEM_ACTION_OWNER}. */
@Nullable
public abstract Label getLabel();
public abstract ImmutableList<AspectDescriptor> getAspectDescriptors();
/** Returns the configuration's mnemonic. */
- @Nullable
public abstract String getMnemonic();
/**
@@ -105,8 +127,7 @@
@Nullable
public abstract BuildConfigurationEvent getConfiguration();
- /** Returns the target kind (rule class name) for this ActionOwner, if any; null otherwise. */
- @Nullable
+ /** Returns the target kind (rule class name) for this ActionOwner. */
public abstract String getTargetKind();
/**
@@ -127,6 +148,4 @@
@VisibleForTesting
@Nullable
public abstract PlatformInfo getExecutionPlatform();
-
- ActionOwner() {}
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD
index abb27df..d6aff69 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD
@@ -52,6 +52,7 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:sane_analysis_exception",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/skylarkbuildapi",
"//src/main/java/com/google/devtools/build/lib/unix",
"//src/main/java/com/google/devtools/build/lib/unsafe:string",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java
index 2b6a3e4..9d76fa5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplate.java
@@ -13,6 +13,8 @@
// limitations under the License.
package com.google.devtools.build.lib.analysis.actions;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -396,16 +398,16 @@
* @param actionOwner the action owner of the SpawnActionTemplate to be built.
*/
public SpawnActionTemplate build(ActionOwner actionOwner) {
- Preconditions.checkNotNull(executable);
+ checkNotNull(executable);
return new SpawnActionTemplate(
- actionOwner,
- Preconditions.checkNotNull(inputTreeArtifact),
- Preconditions.checkNotNull(outputTreeArtifact),
+ checkNotNull(actionOwner),
+ checkNotNull(inputTreeArtifact),
+ checkNotNull(outputTreeArtifact),
inputsBuilder.build(),
toolsBuilder.build(),
- Preconditions.checkNotNull(outputPathMapper),
- Preconditions.checkNotNull(commandLineTemplate),
+ checkNotNull(outputPathMapper),
+ checkNotNull(commandLineTemplate),
actionTemplateMnemonic,
spawnActionBuilder);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
index 1c9dc9d..c4af6bc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
@@ -13,6 +13,8 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.cpp;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -79,7 +81,7 @@
this.dotdTreeArtifact = dotdTreeArtifact;
this.toolchain = toolchain;
this.categories = categories;
- this.actionOwner = actionOwner;
+ this.actionOwner = checkNotNull(actionOwner, outputTreeArtifact);
this.mandatoryInputs = cppCompileActionBuilder.buildMandatoryInputs();
this.allInputs =
NestedSetBuilder.fromNestedSet(mandatoryInputs)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BUILD b/src/main/java/com/google/devtools/build/lib/syntax/BUILD
index 717cd6d..03ac590 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BUILD
@@ -70,7 +70,9 @@
"UnaryOperatorExpression.java",
],
deps = [
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/net/starlark/java/spelling",
"//third_party:auto_value",
"//third_party:guava",
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Location.java b/src/main/java/com/google/devtools/build/lib/syntax/Location.java
index 87da128..8624ea3 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Location.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Location.java
@@ -15,7 +15,7 @@
package com.google.devtools.build.lib.syntax;
import com.google.common.base.Preconditions;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import java.io.Serializable;
import javax.annotation.concurrent.Immutable;
@@ -28,7 +28,6 @@
* If the line number is also zero, it too is not displayed; in this case, the location denotes the
* file as a whole.
*/
-@AutoCodec
@Immutable
public final class Location implements Serializable, Comparable<Location> {
@@ -114,5 +113,5 @@
}
/** A location for built-in functions. */
- @AutoCodec public static final Location BUILTIN = fromFile("<builtin>");
+ @SerializationConstant public static final Location BUILTIN = fromFile("<builtin>");
}
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
index 7b75fee..ae92ac8 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
@@ -50,6 +50,7 @@
import com.google.devtools.build.lib.actions.ArtifactOwner;
import com.google.devtools.build.lib.actions.ArtifactResolver;
import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.actions.BuildConfigurationEvent;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.FileArtifactValue;
import com.google.devtools.build.lib.actions.FileArtifactValue.RemoteFileArtifactValue;
@@ -63,6 +64,7 @@
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate;
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate.OutputPathMapper;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -73,10 +75,10 @@
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.exec.SingleBuildFileCache;
-import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.skyframe.ActionTemplateExpansionValue;
import com.google.devtools.build.lib.skyframe.ActionTemplateExpansionValue.ActionTemplateExpansionKey;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
+import com.google.devtools.build.lib.syntax.Location;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.ResourceUsage;
@@ -112,10 +114,7 @@
import java.util.stream.Collectors;
import javax.annotation.Nullable;
-/**
- * A bunch of utilities that are useful for test concerning actions, artifacts,
- * etc.
- */
+/** A bunch of utilities that are useful for tests concerning actions, artifacts, etc. */
public final class ActionsTestUtil {
private final ActionGraph actionGraph;
@@ -336,16 +335,7 @@
}
}
- static class NullArtifactOwner implements ArtifactOwner {
- private NullArtifactOwner() {}
-
- @Override
- public Label getLabel() {
- return NULL_LABEL;
- }
- }
-
- @AutoCodec
+ @SerializationConstant
public static final ActionLookupKey NULL_ARTIFACT_OWNER =
new ActionLookupValue.ActionLookupKey() {
@Override
@@ -371,17 +361,19 @@
public static final ActionOwner NULL_ACTION_OWNER =
ActionOwner.create(
NULL_LABEL,
- ImmutableList.<AspectDescriptor>of(),
- null,
+ ImmutableList.of(),
+ new Location("dummy-file", 0, 0),
"dummy-configuration-mnemonic",
- null,
+ "dummy-kind",
"dummy-configuration",
+ new BuildConfigurationEvent(
+ BuildEventStreamProtos.BuildEventId.getDefaultInstance(),
+ BuildEventStreamProtos.BuildEvent.getDefaultInstance()),
null,
- null,
- ImmutableMap.<String, String>of(),
+ ImmutableMap.of(),
null);
- @AutoCodec
+ @SerializationConstant
public static final ActionLookupData NULL_ACTION_LOOKUP_DATA =
ActionLookupData.create(NULL_ARTIFACT_OWNER, 0);
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
index c3dd8e6..2b0b2b4 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/BUILD
@@ -20,14 +20,16 @@
"//src/main/java/com/google/devtools/build/lib/analysis:actions/custom_command_line",
"//src/main/java/com/google/devtools/build/lib/analysis:actions/spawn_action_template",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
+ "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/clock",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/exec:single_build_file_cache",
- "//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/skyframe:action_template_expansion_value",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
+ "//src/main/java/com/google/devtools/build/lib/syntax:frontend",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/util:resource_usage",
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java b/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
index 5fc60fd..8111e80 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
@@ -16,12 +16,10 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.devtools.build.lib.actions.ArtifactOwner;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.Objects;
/** ArtifactOwner wrapper for Labels, for use in tests. */
@VisibleForTesting
-@AutoCodec
public class LabelArtifactOwner implements ArtifactOwner {
private final Label label;
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/TestAction.java b/src/test/java/com/google/devtools/build/lib/actions/util/TestAction.java
index 35e98e3..32841d4 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/TestAction.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/TestAction.java
@@ -29,6 +29,7 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import java.io.IOException;
@@ -42,12 +43,7 @@
*/
public class TestAction extends AbstractAction {
- @AutoCodec
- public static final Runnable NO_EFFECT =
- new Runnable() {
- @Override
- public void run() {}
- };
+ @SerializationConstant public static final Runnable NO_EFFECT = () -> {};
private static boolean isOptional(Artifact artifact) {
return artifact.getExecPath().getBaseName().endsWith(".optional");
diff --git a/src/test/java/com/google/devtools/build/lib/exec/SpawnStrategyRegistryTest.java b/src/test/java/com/google/devtools/build/lib/exec/SpawnStrategyRegistryTest.java
index 377251e..052eb9a 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/SpawnStrategyRegistryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/SpawnStrategyRegistryTest.java
@@ -505,7 +505,7 @@
private Spawn createSpawnWithMnemonicAndDescription(String mnemonic, String description) {
return new SimpleSpawn(
- new FakeOwner(mnemonic, description),
+ new FakeOwner(mnemonic, description, "//dummy:label"),
ImmutableList.of(),
ImmutableMap.of(),
ImmutableMap.of(),
diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/BUILD b/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
index f1c4731..e186c04 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/exec/util/BUILD
@@ -26,6 +26,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
+ "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/clock",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
@@ -35,11 +36,10 @@
"//src/main/java/com/google/devtools/build/lib/exec:execution_options",
"//src/main/java/com/google/devtools/build/lib/exec:file_write_strategy",
"//src/main/java/com/google/devtools/build/lib/exec:module_action_context_registry",
- "//src/main/java/com/google/devtools/build/lib/exec:spawn_action_context_maps",
"//src/main/java/com/google/devtools/build/lib/exec:spawn_strategy_registry",
"//src/main/java/com/google/devtools/build/lib/exec:spawn_strategy_resolver",
"//src/main/java/com/google/devtools/build/lib/exec:symlink_tree_strategy",
- "//src/main/java/com/google/devtools/build/lib/packages",
+ "//src/main/java/com/google/devtools/build/lib/syntax:frontend",
"//src/main/java/com/google/devtools/build/lib/util:abrupt_exit_exception",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/common/options",
diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java b/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java
index 3765408..abc0438 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java
@@ -13,74 +13,70 @@
// limitations under the License.
package com.google.devtools.build.lib.exec.util;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
-import com.google.devtools.build.lib.actions.ActionAnalysisMetadata.MiddlemanType;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionMetadata;
import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.BuildConfigurationEvent;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.packages.AspectDescriptor;
+import com.google.devtools.build.lib.syntax.Location;
import javax.annotation.Nullable;
-/**
- * Fake implementation of {@link ActionExecutionMetadata} for testing.
- */
-public final class FakeOwner implements ActionExecutionMetadata {
+/** Fake implementation of {@link ActionExecutionMetadata} for testing. */
+public class FakeOwner implements ActionExecutionMetadata {
private final String mnemonic;
private final String progressMessage;
@Nullable private final String ownerLabel;
@Nullable private final PlatformInfo platform;
- ImmutableMap<String, String> execProperties;
+ private final ImmutableMap<String, String> execProperties;
- public FakeOwner(
+ FakeOwner(
String mnemonic,
String progressMessage,
- @Nullable String ownerLabel,
+ String ownerLabel,
@Nullable PlatformInfo platform,
ImmutableMap<String, String> execProperties) {
this.mnemonic = mnemonic;
this.progressMessage = progressMessage;
- this.ownerLabel = ownerLabel;
+ this.ownerLabel = checkNotNull(ownerLabel);
this.platform = platform;
this.execProperties = execProperties;
}
- public FakeOwner(
- String mnemonic,
- String progressMessage,
- @Nullable String ownerLabel,
- @Nullable PlatformInfo platform) {
+ private FakeOwner(
+ String mnemonic, String progressMessage, String ownerLabel, @Nullable PlatformInfo platform) {
this(mnemonic, progressMessage, ownerLabel, platform, ImmutableMap.of());
}
- public FakeOwner(String mnemonic, String progressMessage, @Nullable String ownerLabel) {
- this(mnemonic, progressMessage, ownerLabel, null);
- }
-
- public FakeOwner(String mnemonic, String progressMessage) {
- this(mnemonic, progressMessage, null);
+ public FakeOwner(String mnemonic, String progressMessage, String ownerLabel) {
+ this(mnemonic, progressMessage, checkNotNull(ownerLabel), null);
}
@Override
public ActionOwner getOwner() {
return ActionOwner.create(
- ownerLabel == null ? null : Label.parseAbsoluteUnchecked(ownerLabel),
- /*aspectDescriptors=*/ ImmutableList.<AspectDescriptor>of(),
- /*location=*/ null,
+ Label.parseAbsoluteUnchecked(ownerLabel),
+ /*aspectDescriptors=*/ ImmutableList.of(),
+ new Location("dummy-file", 0, 0),
mnemonic,
- /*targetKind=*/ null,
+ "dummy-target-kind",
"configurationChecksum",
- /* configuration=*/ null,
+ new BuildConfigurationEvent(
+ BuildEventStreamProtos.BuildEventId.getDefaultInstance(),
+ BuildEventStreamProtos.BuildEvent.getDefaultInstance()),
"additionalProgressInfo",
/* execProperties=*/ ImmutableMap.of(),
null);
diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/SpawnBuilder.java b/src/test/java/com/google/devtools/build/lib/exec/util/SpawnBuilder.java
index cce2e41..47584b4 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/util/SpawnBuilder.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/util/SpawnBuilder.java
@@ -13,6 +13,8 @@
// limitations under the License.
package com.google.devtools.build.lib.exec.util;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -42,7 +44,7 @@
public final class SpawnBuilder {
private String mnemonic = "Mnemonic";
private String progressMessage = "progress message";
- @Nullable private String ownerLabel;
+ private String ownerLabel = "//dummy:label";
@Nullable private PlatformInfo platform;
private final List<String> args;
private final Map<String, String> environment = new HashMap<>();
@@ -81,7 +83,7 @@
}
public SpawnBuilder withMnemonic(String mnemonic) {
- this.mnemonic = Preconditions.checkNotNull(mnemonic);
+ this.mnemonic = checkNotNull(mnemonic);
return this;
}
@@ -91,7 +93,7 @@
}
public SpawnBuilder withOwnerLabel(String ownerLabel) {
- this.ownerLabel = ownerLabel;
+ this.ownerLabel = checkNotNull(ownerLabel);
return this;
}
diff --git a/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java b/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
index eec57b5..ef2e9c4 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
@@ -184,7 +184,7 @@
fakeFileCache = new FakeActionInputFileCache(execRoot);
simpleSpawn =
new SimpleSpawn(
- new FakeOwner("Mnemonic", "Progress Message"),
+ new FakeOwner("Mnemonic", "Progress Message", "//dummy:label"),
ImmutableList.of("/bin/echo", "Hi!"),
ImmutableMap.of("VARIABLE", "value"),
/*executionInfo=*/ ImmutableMap.<String, String>of(),
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
index 9ff5ef9..2ab08c1 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
@@ -219,7 +219,7 @@
private static SimpleSpawn simpleSpawnWithExecutionInfo(
ImmutableMap<String, String> executionInfo) {
return new SimpleSpawn(
- new FakeOwner("Mnemonic", "Progress Message"),
+ new FakeOwner("Mnemonic", "Progress Message", "//dummy:label"),
ImmutableList.of("/bin/echo", "Hi!"),
ImmutableMap.of("VARIABLE", "value"),
executionInfo,
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
index a5b204b..030efa3 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
@@ -844,7 +844,7 @@
PathFragment.create("out/param_file"), args, ParameterFileType.UNQUOTED, ISO_8859_1);
Spawn spawn =
new SimpleSpawn(
- new FakeOwner("foo", "bar"),
+ new FakeOwner("foo", "bar", "//dummy:label"),
/*arguments=*/ ImmutableList.of(),
/*environment=*/ ImmutableMap.of(),
/*executionInfo=*/ ImmutableMap.of(),
@@ -1028,7 +1028,7 @@
private static SimpleSpawn simpleSpawnWithExecutionInfo(
ImmutableMap<String, String> executionInfo, Artifact... outputs) {
return new SimpleSpawn(
- new FakeOwner("foo", "bar"),
+ new FakeOwner("foo", "bar", "//dummy:label"),
/*arguments=*/ ImmutableList.of(),
/*environment=*/ ImmutableMap.of(),
/*executionInfo=*/ executionInfo,
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/UiStateTrackerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/UiStateTrackerTest.java
index f93e6f0..1f37b99 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/UiStateTrackerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/UiStateTrackerTest.java
@@ -31,6 +31,7 @@
import com.google.devtools.build.lib.actions.ActionStartedEvent;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.actions.BuildConfigurationEvent;
import com.google.devtools.build.lib.actions.RunningActionEvent;
import com.google.devtools.build.lib.actions.ScanningActionEvent;
import com.google.devtools.build.lib.actions.SchedulingActionEvent;
@@ -38,6 +39,7 @@
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.bazel.repository.downloader.DownloadProgressEvent;
import com.google.devtools.build.lib.buildeventstream.AnnounceBuildEventTransportsEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransportClosedEvent;
import com.google.devtools.build.lib.buildtool.BuildResult;
@@ -45,11 +47,11 @@
import com.google.devtools.build.lib.buildtool.buildevent.TestFilteringCompleteEvent;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.ExtendedEventHandler.FetchProgress;
-import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.runtime.UiStateTracker.ProgressMode;
import com.google.devtools.build.lib.runtime.UiStateTracker.StrategyIds;
import com.google.devtools.build.lib.skyframe.LoadingPhaseStartedEvent;
import com.google.devtools.build.lib.skyframe.PackageProgressReceiver;
+import com.google.devtools.build.lib.syntax.Location;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.ManualClock;
import com.google.devtools.build.lib.util.DetailedExitCode;
@@ -523,12 +525,14 @@
ActionOwner owner =
ActionOwner.create(
label,
- ImmutableList.<AspectDescriptor>of(),
- null,
- null,
- null,
+ ImmutableList.of(),
+ new Location("dummy-file", 0, 0),
+ "dummy-mnemonic",
+ "dummy-target-kind",
"fedcba",
- null,
+ new BuildConfigurationEvent(
+ BuildEventStreamProtos.BuildEventId.getDefaultInstance(),
+ BuildEventStreamProtos.BuildEvent.getDefaultInstance()),
null,
ImmutableMap.of(),
null);
@@ -950,12 +954,14 @@
ActionOwner fooOwner =
ActionOwner.create(
labelFooTest,
- ImmutableList.<AspectDescriptor>of(),
- null,
- null,
- null,
+ ImmutableList.of(),
+ new Location("dummy-file", 0, 0),
+ "dummy-mnemonic",
+ "dummy-target-kind",
"abcdef",
- null,
+ new BuildConfigurationEvent(
+ BuildEventStreamProtos.BuildEventId.getDefaultInstance(),
+ BuildEventStreamProtos.BuildEvent.getDefaultInstance()),
null,
ImmutableMap.of(),
null);
@@ -969,12 +975,14 @@
ActionOwner barOwner =
ActionOwner.create(
labelBarTest,
- ImmutableList.<AspectDescriptor>of(),
- null,
- null,
- null,
+ ImmutableList.of(),
+ new Location("dummy-file", 0, 0),
+ "dummy-mnemonic",
+ "dummy-target-kind",
"fedcba",
- null,
+ new BuildConfigurationEvent(
+ BuildEventStreamProtos.BuildEventId.getDefaultInstance(),
+ BuildEventStreamProtos.BuildEvent.getDefaultInstance()),
null,
ImmutableMap.of(),
null);