Provide more reporting options to SkyFunctions
With more specific information to be reported by Skyfunctions, e.g.,
to inform the build-event protocol on missing files, the EventHandler
interface is no longer enough. Therefore, provide an enriched context
for reporting events.
--
Change-Id: I2d06166fe4d5b9054e24ad8c752fafc039e3f9f8
Reviewed-on: https://cr.bazel.build/8794
PiperOrigin-RevId: 148463437
MOS_MIGRATED_REVID=148463437
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 d11392e..92eeedf 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
@@ -23,6 +23,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
@@ -45,6 +46,8 @@
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate.OutputPathMapper;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.EventHandler;
+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.util.FileType;
@@ -149,8 +152,12 @@
EvaluationResult<SkyValue> evaluationResult;
Map<SkyKey, ValueOrUntypedException> result = new HashMap<>();
try {
- evaluationResult = driver.evaluate(depKeys, /*keepGoing=*/false,
- ResourceUsage.getAvailableProcessors(), eventHandler);
+ evaluationResult =
+ driver.evaluate(
+ depKeys, /*keepGoing=*/
+ false,
+ ResourceUsage.getAvailableProcessors(),
+ new Reporter(new EventBus(), eventHandler));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
for (SkyKey key : depKeys) {
@@ -175,7 +182,7 @@
}
@Override
- public EventHandler getListener() {
+ public ExtendedEventHandler getListener() {
return null;
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 0312811..98a91b8 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -280,8 +280,8 @@
BuildConfiguration targetConfig =
Iterables.getOnlyElement(masterConfig.getTargetConfigurations());
if (useDynamicVersionIfEnabled && targetConfig.useDynamicConfigurations()) {
- return skyframeExecutor.getConfigurationForTesting(eventCollector,
- targetConfig.fragmentClasses(), targetConfig.getOptions());
+ return skyframeExecutor.getConfigurationForTesting(
+ reporter, targetConfig.fragmentClasses(), targetConfig.getOptions());
} else {
return targetConfig;
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
index 50e591b..8291d8e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
@@ -47,7 +47,7 @@
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.testutil.TestConstants;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -109,7 +109,7 @@
}
@Override
- public EventHandler getEventHandler() {
+ public ExtendedEventHandler getEventHandler() {
return original.getEventHandler();
}
@@ -321,7 +321,7 @@
}
@Override
- public EventHandler getEventHandler() {
+ public ExtendedEventHandler getEventHandler() {
return null;
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 0e68cfa..5d475a2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -89,7 +89,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.events.Event;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.exec.ExecutionOptions;
import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer;
@@ -1640,7 +1640,7 @@
}
@Override
- public EventHandler getEventHandler() {
+ public ExtendedEventHandler getEventHandler() {
return reporter;
}
diff --git a/src/test/java/com/google/devtools/build/lib/events/EventSensorTest.java b/src/test/java/com/google/devtools/build/lib/events/EventSensorTest.java
index ff19a68..d765f23 100644
--- a/src/test/java/com/google/devtools/build/lib/events/EventSensorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/events/EventSensorTest.java
@@ -17,6 +17,7 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import com.google.common.eventbus.EventBus;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -37,7 +38,7 @@
@Test
public void sensorNoticesEventsInItsMask() {
EventSensor sensor = new EventSensor(EventKind.ERRORS);
- Reporter reporter = new Reporter(sensor);
+ Reporter reporter = new Reporter(new EventBus(), sensor);
reporter.handle(Event.error(location, "An ERROR event."));
assertTrue(sensor.wasTriggered());
}
@@ -45,7 +46,7 @@
@Test
public void sensorNoticesEventsInItsMask2() {
EventSensor sensor = new EventSensor(EventKind.ALL_EVENTS);
- Reporter reporter = new Reporter(sensor);
+ Reporter reporter = new Reporter(new EventBus(), sensor);
reporter.handle(Event.error(location, "An ERROR event."));
reporter.handle(Event.warn(location, "A warning event."));
assertTrue(sensor.wasTriggered());
@@ -54,7 +55,7 @@
@Test
public void sensorIgnoresEventsNotInItsMask() {
EventSensor sensor = new EventSensor(EventKind.ERRORS_AND_WARNINGS);
- Reporter reporter = new Reporter(sensor);
+ Reporter reporter = new Reporter(new EventBus(), sensor);
reporter.handle(Event.info(location, "An INFO event."));
assertFalse(sensor.wasTriggered());
}
@@ -62,7 +63,7 @@
@Test
public void sensorCanCount() {
EventSensor sensor = new EventSensor(EventKind.ERRORS_AND_WARNINGS);
- Reporter reporter = new Reporter(sensor);
+ Reporter reporter = new Reporter(new EventBus(), sensor);
reporter.handle(Event.error(location, "An ERROR event."));
reporter.handle(Event.error(location, "Another ERROR event."));
reporter.handle(Event.warn(location, "A warning event."));
diff --git a/src/test/java/com/google/devtools/build/lib/events/ReporterStreamTest.java b/src/test/java/com/google/devtools/build/lib/events/ReporterStreamTest.java
index 786a4de..6c0777a 100644
--- a/src/test/java/com/google/devtools/build/lib/events/ReporterStreamTest.java
+++ b/src/test/java/com/google/devtools/build/lib/events/ReporterStreamTest.java
@@ -15,15 +15,14 @@
import static com.google.common.truth.Truth.assertThat;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.testutil.MoreAsserts;
-
+import java.io.PrintWriter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import java.io.PrintWriter;
-
@RunWith(JUnit4.class)
public class ReporterStreamTest {
@@ -33,7 +32,7 @@
@Before
public final void createOutputAppender() throws Exception {
- reporter = new Reporter();
+ reporter = new Reporter(new EventBus());
out = new StringBuilder();
outAppender = new EventHandler() {
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/events/ReporterTest.java b/src/test/java/com/google/devtools/build/lib/events/ReporterTest.java
index d385a5d..27617cb 100644
--- a/src/test/java/com/google/devtools/build/lib/events/ReporterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/events/ReporterTest.java
@@ -17,7 +17,7 @@
import static org.junit.Assert.assertEquals;
import com.google.common.collect.ImmutableList;
-
+import com.google.common.eventbus.EventBus;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -35,7 +35,7 @@
@Before
public final void initializeOutput() throws Exception {
- reporter = new Reporter();
+ reporter = new Reporter(new EventBus());
out = new StringBuilder();
outAppender = new AbstractEventHandler(EventKind.ERRORS) {
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/events/SimpleReportersTest.java b/src/test/java/com/google/devtools/build/lib/events/SimpleReportersTest.java
index f7939ea..f99df10 100644
--- a/src/test/java/com/google/devtools/build/lib/events/SimpleReportersTest.java
+++ b/src/test/java/com/google/devtools/build/lib/events/SimpleReportersTest.java
@@ -15,6 +15,7 @@
import static org.junit.Assert.assertEquals;
+import com.google.common.eventbus.EventBus;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -36,7 +37,7 @@
}
};
- Reporter reporter = new Reporter(handler);
+ Reporter reporter = new Reporter(new EventBus(), handler);
reporter.handle(Event.info(location, "Add to handlerCount."));
reporter.handle(Event.info(location, "Add to handlerCount."));
reporter.handle(Event.info(location, "Add to handlerCount."));
diff --git a/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java b/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java
index 05a5826..8d10452 100644
--- a/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java
+++ b/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.events.util;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventCollector;
import com.google.devtools.build.lib.events.EventHandler;
@@ -22,7 +23,6 @@
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.util.io.OutErr;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -45,7 +45,7 @@
public EventCollectionApparatus(Set<EventKind> mask) {
eventCollector = new EventCollector(mask);
printingEventHandler = new PrintingEventHandler(EventKind.ERRORS_AND_WARNINGS_AND_OUTPUT);
- reporter = new Reporter(eventCollector, printingEventHandler);
+ reporter = new Reporter(new EventBus(), eventCollector, printingEventHandler);
this.setFailFast(true);
}
diff --git a/src/test/java/com/google/devtools/build/lib/exec/BlazeExecutorTest.java b/src/test/java/com/google/devtools/build/lib/exec/BlazeExecutorTest.java
index 105829a..05c65a7 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/BlazeExecutorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/BlazeExecutorTest.java
@@ -17,6 +17,7 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.config.BinTools;
@@ -60,7 +61,7 @@
OptionsParser parser = OptionsParser.newOptionsParser(TestExecutorBuilder.DEFAULT_OPTIONS);
parser.parse("--debug_print_action_contexts");
- Reporter reporter = new Reporter();
+ Reporter reporter = new Reporter(new EventBus());
StoredEventHandler storedEventHandler = new StoredEventHandler();
reporter.addHandler(storedEventHandler);
diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java b/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java
index 972fd9e..d18e004 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java
@@ -45,8 +45,8 @@
public static final List<Class<? extends OptionsBase>> DEFAULT_OPTIONS = ImmutableList.of(
ExecutionOptions.class, CommonCommandOptions.class);
private final BlazeDirectories directories;
- private Reporter reporter = new Reporter();
private EventBus bus = new EventBus();
+ private Reporter reporter = new Reporter(bus);
private OptionsParser optionsParser = OptionsParser.newOptionsParser(DEFAULT_OPTIONS);
private List<ActionContext> strategies = new ArrayList<>();
private Map<String, SpawnActionContext> spawnStrategyMap =
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
index 972b2fe..836ed6c 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
@@ -26,6 +26,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.Reporter;
@@ -70,7 +71,7 @@
final Semaphore beforeError = new Semaphore(0);
final Semaphore afterError = new Semaphore(0);
- Reporter reporter = new Reporter();
+ Reporter reporter = new Reporter(new EventBus());
ParsingTracker parser = new ParsingTracker(beforeError, afterError, reporter);
final Logger log = Logger.getLogger(PackageFactory.class.getName());
log.addHandler(parser);
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
index 95d3c45..a2d34f3 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
@@ -22,6 +22,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
@@ -32,14 +33,12 @@
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.vfs.Path;
-
+import java.util.HashMap;
+import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import java.util.HashMap;
-import java.util.Map;
-
@RunWith(JUnit4.class)
public class RuleFactoryTest extends PackageLoadingTestCase {
@@ -67,7 +66,7 @@
pkgBuilder,
ruleClass,
new BuildLangTypedAttributeValuesMap(attributeValues),
- new Reporter(),
+ new Reporter(new EventBus()),
/*ast=*/ null,
LOCATION_42,
/*env=*/ null,
@@ -128,7 +127,7 @@
pkgBuilder,
ruleClass,
new BuildLangTypedAttributeValuesMap(attributeValues),
- new Reporter(),
+ new Reporter(new EventBus()),
/*ast=*/ null,
Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42),
/*env=*/ null,
@@ -154,7 +153,7 @@
pkgBuilder,
ruleClass,
new BuildLangTypedAttributeValuesMap(attributeValues),
- new Reporter(),
+ new Reporter(new EventBus()),
/*ast=*/ null,
LOCATION_42,
/*env=*/ null,
@@ -183,7 +182,7 @@
pkgBuilder,
ruleClass,
new BuildLangTypedAttributeValuesMap(attributeValues),
- new Reporter(),
+ new Reporter(new EventBus()),
/*ast=*/ null,
Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42),
/*env=*/ null,
@@ -223,7 +222,7 @@
pkgBuilder,
ruleClass,
new BuildLangTypedAttributeValuesMap(attributeValues),
- new Reporter(),
+ new Reporter(new EventBus()),
/*ast=*/ null,
Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42),
/*env=*/ null,
diff --git a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
index 53f21bb..0258d52 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
@@ -27,7 +27,7 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase;
import com.google.devtools.build.lib.pkgcache.TargetProvider;
import com.google.devtools.build.lib.skyframe.TestSuiteExpansionValue;
@@ -198,7 +198,7 @@
TestTargetUtils.expandTestSuites(
new TargetProvider() {
@Override
- public Target getTarget(EventHandler eventHandler, Label label)
+ public Target getTarget(ExtendedEventHandler eventHandler, Label label)
throws InterruptedException {
throw new InterruptedException();
}
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
index 8464cef..904a97f 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java
@@ -20,20 +20,18 @@
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.events.DelegatingEventHandler;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.ConstantRuleVisibility;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase;
import com.google.devtools.build.lib.util.Pair;
-
-import org.junit.Before;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import org.junit.Before;
/**
* Abstract framework for target pattern evaluation tests. The {@link TargetPatternEvaluatorTest}
@@ -45,17 +43,22 @@
protected RecordingParsingListener parsingListener;
protected static ResolvedTargets<Target> parseTargetPatternList(
- TargetPatternEvaluator parser, EventHandler eventHandler,
- List<String> targetPatterns, boolean keepGoing)
- throws TargetParsingException, InterruptedException {
+ TargetPatternEvaluator parser,
+ ExtendedEventHandler eventHandler,
+ List<String> targetPatterns,
+ boolean keepGoing)
+ throws TargetParsingException, InterruptedException {
return parseTargetPatternList(
parser, eventHandler, targetPatterns, FilteringPolicies.NO_FILTER, keepGoing);
}
protected static ResolvedTargets<Target> parseTargetPatternList(
- TargetPatternEvaluator parser, EventHandler eventHandler,
- List<String> targetPatterns, FilteringPolicy policy,
- boolean keepGoing) throws TargetParsingException, InterruptedException {
+ TargetPatternEvaluator parser,
+ ExtendedEventHandler eventHandler,
+ List<String> targetPatterns,
+ FilteringPolicy policy,
+ boolean keepGoing)
+ throws TargetParsingException, InterruptedException {
return parser.parseTargetPatternList(eventHandler, targetPatterns, policy, keepGoing);
}
@@ -98,7 +101,7 @@
implements ParseFailureListener {
protected final List<Pair<String, String>> events = new ArrayList<>();
- private RecordingParsingListener(EventHandler delegate) {
+ private RecordingParsingListener(ExtendedEventHandler delegate) {
super(delegate);
}
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
index 7527f88..de78d51 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
@@ -23,6 +23,7 @@
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Reporter;
@@ -449,7 +450,7 @@
private final ManualClock clock;
private final Path workspace;
private final Path outputBase;
- private final Reporter reporter = new Reporter();
+ private final Reporter reporter = new Reporter(new EventBus());
private final SkyframeExecutor skyframeExecutor;
private final List<Path> changes = new ArrayList<>();
private boolean everythingModified = false;
@@ -588,8 +589,8 @@
ImmutableMap.<String, String>of(),
new TimestampGranularityMonitor(BlazeClock.instance()));
skyframeExecutor.invalidateFilesUnderPathForTesting(
- new Reporter(), modifiedFileSet, workspace);
- ((SequencedSkyframeExecutor) skyframeExecutor).handleDiffs(new Reporter());
+ new Reporter(new EventBus()), modifiedFileSet, workspace);
+ ((SequencedSkyframeExecutor) skyframeExecutor).handleDiffs(new Reporter(new EventBus()));
changes.clear();
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 466e061..f25c425 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -547,7 +547,7 @@
" path = '/foo')");
getSkyframeExecutor()
.invalidateFilesUnderPathForTesting(
- eventCollector,
+ reporter,
new ModifiedFileSet.Builder().modify(new PathFragment("WORKSPACE")).build(),
rootDirectory);
FileSystemUtils.createDirectoryAndParents(scratch.resolve("/foo/bar"));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
index dbbcf49..50c3a2c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
@@ -19,9 +19,11 @@
import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableList;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.EvaluationResult;
@@ -139,7 +141,11 @@
EvaluationResult<SkyValue> evaluationResult =
getSkyframeExecutor()
.getDriverForTesting()
- .evaluate(singletonTargetPattern, keepGoing, LOADING_PHASE_THREADS, eventCollector);
+ .evaluate(
+ singletonTargetPattern,
+ keepGoing,
+ LOADING_PHASE_THREADS,
+ new Reporter(new EventBus(), eventCollector));
// The evaluation has no errors if success was expected.
assertThat(evaluationResult.hasError()).isNotEqualTo(successExpected);
return Preconditions.checkNotNull(evaluationResult.getWalkableGraph());
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
index cda7fbc..0afcbed 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
@@ -22,8 +22,10 @@
import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableList;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.util.Preconditions;
@@ -208,7 +210,11 @@
EvaluationResult<SkyValue> evaluationResult =
getSkyframeExecutor()
.getDriverForTesting()
- .evaluate(singletonTargetPattern, keepGoing, LOADING_PHASE_THREADS, eventCollector);
+ .evaluate(
+ singletonTargetPattern,
+ keepGoing,
+ LOADING_PHASE_THREADS,
+ new Reporter(new EventBus(), eventCollector));
// Currently all callers either expect success or pass keepGoing=true, which implies success,
// since PrepareDepsOfPatternsFunction swallows all errors. Will need to be changed if a test
// that evaluates with keepGoing=false and expects errors is added.
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java b/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
index f0a81f1..21ba998 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
@@ -21,7 +21,7 @@
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetValue;
@@ -62,13 +62,13 @@
return skyframeExecutor.getEvaluatorForTesting().getExistingErrorForTesting(key);
}
- /**
- * Calls {@link MemoizingEvaluator#evaluate} on the given {@link SkyframeExecutor}'s
- * graph.
- */
+ /** Calls {@link MemoizingEvaluator#evaluate} on the given {@link SkyframeExecutor}'s graph. */
public static <T extends SkyValue> EvaluationResult<T> evaluate(
- SkyframeExecutor skyframeExecutor, SkyKey key, boolean keepGoing,
- EventHandler errorEventListener) throws InterruptedException {
+ SkyframeExecutor skyframeExecutor,
+ SkyKey key,
+ boolean keepGoing,
+ ExtendedEventHandler errorEventListener)
+ throws InterruptedException {
return skyframeExecutor.getDriverForTesting().evaluate(ImmutableList.of(key), keepGoing,
SkyframeExecutor.DEFAULT_THREAD_COUNT, errorEventListener);
}
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
index d05a44e..c9578bf 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
@@ -60,7 +60,8 @@
@RunWith(JUnit4.class)
public class StandaloneSpawnStrategyTest {
- private Reporter reporter = new Reporter(PrintingEventHandler.ERRORS_AND_WARNINGS_TO_STDERR);
+ private Reporter reporter =
+ new Reporter(new EventBus(), PrintingEventHandler.ERRORS_AND_WARNINGS_TO_STDERR);
private BlazeExecutor executor;
private FileSystem fileSystem;
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
index 311922e..10da1ad 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
@@ -17,13 +17,13 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.EventKind;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.vfs.PathFragment;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -43,7 +43,7 @@
private Lexer createLexer(String input) {
PathFragment somePath = new PathFragment("/some/path.txt");
ParserInputSource inputSource = ParserInputSource.create(input, somePath);
- Reporter reporter = new Reporter();
+ Reporter reporter = new Reporter(new EventBus());
reporter.addHandler(new EventHandler() {
@Override
public void handle(Event event) {
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java b/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java
index 098a4dd..e333784 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java
@@ -15,6 +15,7 @@
import static org.junit.Assert.fail;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventCollector;
import com.google.devtools.build.lib.events.EventHandler;
@@ -75,7 +76,7 @@
@Before
public final void initializeLogging() throws Exception {
eventCollector = new EventCollector(EventKind.ERRORS_AND_WARNINGS);
- reporter = new Reporter(eventCollector);
+ reporter = new Reporter(new EventBus(), eventCollector);
reporter.addHandler(failFastHandler);
}
diff --git a/src/test/java/com/google/devtools/build/skyframe/CyclesReporterTest.java b/src/test/java/com/google/devtools/build/skyframe/CyclesReporterTest.java
index ab17456..e009493 100644
--- a/src/test/java/com/google/devtools/build/skyframe/CyclesReporterTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/CyclesReporterTest.java
@@ -16,16 +16,14 @@
import static com.google.common.truth.Truth.assertThat;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.NullEventHandler;
import com.google.devtools.build.skyframe.CyclesReporter.SingleCycleReporter;
-
+import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import java.util.concurrent.atomic.AtomicBoolean;
-
@RunWith(JUnit4.class)
public class CyclesReporterTest {
@@ -44,13 +42,17 @@
@Test
public void notReportedAssertion() {
- SingleCycleReporter singleReporter = new SingleCycleReporter() {
- @Override
- public boolean maybeReportCycle(SkyKey topLevelKey, CycleInfo cycleInfo,
- boolean alreadyReported, EventHandler eventHandler) {
- return false;
- }
- };
+ SingleCycleReporter singleReporter =
+ new SingleCycleReporter() {
+ @Override
+ public boolean maybeReportCycle(
+ SkyKey topLevelKey,
+ CycleInfo cycleInfo,
+ boolean alreadyReported,
+ ExtendedEventHandler eventHandler) {
+ return false;
+ }
+ };
CycleInfo cycleInfo = new CycleInfo(ImmutableList.of(DUMMY_KEY));
CyclesReporter cyclesReporter = new CyclesReporter(singleReporter);
@@ -66,14 +68,18 @@
@Test
public void smoke() {
final AtomicBoolean reported = new AtomicBoolean();
- SingleCycleReporter singleReporter = new SingleCycleReporter() {
- @Override
- public boolean maybeReportCycle(SkyKey topLevelKey, CycleInfo cycleInfo,
- boolean alreadyReported, EventHandler eventHandler) {
- reported.set(true);
- return true;
- }
- };
+ SingleCycleReporter singleReporter =
+ new SingleCycleReporter() {
+ @Override
+ public boolean maybeReportCycle(
+ SkyKey topLevelKey,
+ CycleInfo cycleInfo,
+ boolean alreadyReported,
+ ExtendedEventHandler eventHandler) {
+ reported.set(true);
+ return true;
+ }
+ };
CycleInfo cycleInfo = new CycleInfo(ImmutableList.of(DUMMY_KEY));
CyclesReporter cyclesReporter = new CyclesReporter(singleReporter);
diff --git a/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java b/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java
index 428bff5..cfb656b 100644
--- a/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java
@@ -27,6 +27,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
+import com.google.common.eventbus.EventBus;
import com.google.common.testing.GcFinalization;
import com.google.devtools.build.lib.concurrent.AbstractQueueVisitor;
import com.google.devtools.build.lib.events.Reporter;
@@ -137,7 +138,7 @@
protected <T extends SkyValue> EvaluationResult<T> eval(boolean keepGoing, SkyKey... keys)
throws InterruptedException {
- Reporter reporter = new Reporter();
+ Reporter reporter = new Reporter(new EventBus());
ParallelEvaluator evaluator =
new ParallelEvaluator(
graph,
diff --git a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
index 23200e2..461047d 100644
--- a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
@@ -38,13 +38,15 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.common.eventbus.EventBus;
import com.google.common.testing.GcFinalization;
import com.google.common.util.concurrent.Uninterruptibles;
import com.google.devtools.build.lib.events.DelegatingEventHandler;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventCollector;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.EventKind;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
+import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.testutil.TestThread;
import com.google.devtools.build.lib.testutil.TestUtils;
import com.google.devtools.build.lib.util.Preconditions;
@@ -82,7 +84,7 @@
protected MemoizingEvaluatorTester tester;
private EventCollector eventCollector;
- private EventHandler reporter;
+ private ExtendedEventHandler reporter;
protected MemoizingEvaluator.EmittedEventState emittedEventState;
// Knobs that control the size / duration of larger tests.
@@ -136,7 +138,7 @@
private void initializeReporter() {
eventCollector = new EventCollector();
- reporter = eventCollector;
+ reporter = new Reporter(new EventBus(), eventCollector);
tester.resetPlayedEvents();
}
diff --git a/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java b/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
index 0aeebc9..2097852 100644
--- a/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
@@ -35,11 +35,14 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import com.google.common.eventbus.EventBus;
import com.google.common.util.concurrent.Uninterruptibles;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventCollector;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.EventKind;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
+import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.testutil.TestThread;
import com.google.devtools.build.lib.testutil.TestUtils;
import com.google.devtools.build.skyframe.GraphTester.StringValue;
@@ -96,10 +99,11 @@
EventFilter storedEventFilter) {
Version oldGraphVersion = graphVersion;
graphVersion = graphVersion.next();
- return new ParallelEvaluator(graph,
+ return new ParallelEvaluator(
+ graph,
oldGraphVersion,
builders,
- eventCollector,
+ new Reporter(new EventBus(), eventCollector),
new MemoizingEvaluator.EmittedEventState(),
storedEventFilter,
keepGoing,
@@ -1838,12 +1842,15 @@
}
};
- EventHandler reporter = new EventHandler() {
- @Override
- public void handle(Event e) {
- throw new IllegalStateException();
- }
- };
+ ExtendedEventHandler reporter =
+ new Reporter(
+ new EventBus(),
+ new EventHandler() {
+ @Override
+ public void handle(Event e) {
+ throw new IllegalStateException();
+ }
+ });
MemoizingEvaluator aug = new InMemoryMemoizingEvaluator(
ImmutableMap.of(GraphTester.NODE_TYPE, tester.getFunction()), new RecordingDifferencer(),