Deflake test by enforcing deterministic order of returned reverse deps when marking clean.
PiperOrigin-RevId: 234229893
diff --git a/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java b/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
index 9a83bde..c50e597 100644
--- a/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
+++ b/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
@@ -69,8 +69,8 @@
@Nullable
@Override
- protected DeterministicValueEntry wrapEntry(SkyKey key, @Nullable ThinNodeEntry entry) {
- return entry == null ? null : new DeterministicValueEntry(key, entry);
+ protected DeterministicNodeEntry wrapEntry(SkyKey key, @Nullable ThinNodeEntry entry) {
+ return entry == null ? null : new DeterministicNodeEntry(key, entry);
}
private static Map<SkyKey, ? extends NodeEntry> makeDeterministic(
@@ -126,8 +126,8 @@
* This class uses TreeSet to store reverse dependencies of NodeEntry. As a result all values are
* lexicographically sorted.
*/
- private class DeterministicValueEntry extends NotifyingNodeEntry {
- private DeterministicValueEntry(SkyKey myKey, ThinNodeEntry delegate) {
+ private class DeterministicNodeEntry extends NotifyingNodeEntry {
+ private DeterministicNodeEntry(SkyKey myKey, ThinNodeEntry delegate) {
super(myKey, delegate);
}
@@ -154,5 +154,12 @@
result.addAll(super.setValue(value, version, depFingerprintList));
return result;
}
+
+ @Override
+ public Set<SkyKey> markClean() throws InterruptedException {
+ TreeSet<SkyKey> result = new TreeSet<>(ALPHABETICAL_SKYKEY_COMPARATOR);
+ result.addAll(super.markClean());
+ return result;
+ }
}
}
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 2cfbf44..a011d22 100644
--- a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
@@ -70,7 +70,6 @@
import javax.annotation.Nullable;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -4484,7 +4483,6 @@
* evaluation depending on a node in error.
*/
@Test
- @Ignore // TODO(b/124505961): This test hangs with a thread blocked in CDL.await.
public void shutDownBuildOnCachedError_Done() throws Exception {
// errorKey will be invalidated due to its dependence on invalidatedKey, but later revalidated
// since invalidatedKey re-evaluates to the same value on a subsequent build.