From 6630426fb6b2380a8bf78ca77b7f42606b33702c Mon Sep 17 00:00:00 2001 From: Michajlo Matijkiw Date: Thu, 15 Oct 2015 20:54:33 +0000 Subject: Move to using "well-known" SkyFunctionNames in tests exercising graph -- MOS_MIGRATED_REVID=105539869 --- .../java/com/google/devtools/build/skyframe/ParallelEvaluator.java | 4 +++- .../java/com/google/devtools/build/skyframe/SkyFunctionName.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools') diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java index 59ff33ad48..6dc31eeaf6 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java +++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java @@ -1513,8 +1513,8 @@ public final class ParallelEvaluator implements Evaluator { // graph stack. while (!toVisit.isEmpty()) { SkyKey key = toVisit.pop(); - NodeEntry entry = graph.get(key); + NodeEntry entry; if (key == CHILDREN_FINISHED) { // A marker node means we are done with all children of a node. Since all nodes have // errors, we must have found errors in the children when that happens. @@ -1548,6 +1548,8 @@ public final class ParallelEvaluator implements Evaluator { SkyFunctionEnvironment env = new SkyFunctionEnvironment(key, directDeps, visitor); env.setError(ErrorInfo.fromChildErrors(key, errorDeps)); env.commit(/*enqueueParents=*/false); + } else { + entry = graph.get(key); } Preconditions.checkNotNull(entry, key); diff --git a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java index a214bd33de..af7474c506 100644 --- a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java +++ b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java @@ -38,6 +38,13 @@ public final class SkyFunctionName implements Serializable { } }); + /** + * A well-known key type intended for testing only. The associated SkyKey should have a String + * argument. + */ + // Needs to be after the cache is initialized. + public static final SkyFunctionName FOR_TESTING = SkyFunctionName.create("FOR_TESTING"); + /** Create a SkyFunctionName identified by {@code name}. */ public static SkyFunctionName create(String name) { try { -- cgit v1.2.3