Increase visibility of an InMemoryNodeEntry method
For use in alternate graph implementations.
Also adds some user-friendly methods to StringValue, a SkyValue
implementation used in tests.
--
MOS_MIGRATED_REVID=104899226
diff --git a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
index db686b2..04d76db 100644
--- a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
+++ b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
@@ -13,10 +13,13 @@
// limitations under the License.
package com.google.devtools.build.skyframe;
+import static com.google.common.truth.Truth.assertThat;
+
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.util.Pair;
+import com.google.devtools.build.skyframe.SkyFunction.Environment;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
import java.util.Collection;
@@ -308,6 +311,15 @@
public String toString() {
return "StringValue: " + getValue();
}
+
+ public static StringValue of(String string) {
+ return new StringValue(string);
+ }
+
+ public static StringValue from(SkyValue skyValue) {
+ assertThat(skyValue).isInstanceOf(StringValue.class);
+ return (StringValue) skyValue;
+ }
}
/**
@@ -336,4 +348,14 @@
return new StringValue(result.toString());
}
};
+
+ public static ValueComputer formatter(final SkyKey key, final String format) {
+ return new ValueComputer() {
+ @Override
+ public SkyValue compute(Map<SkyKey, SkyValue> deps, Environment env)
+ throws InterruptedException {
+ return StringValue.of(String.format(format, StringValue.from(deps.get(key)).getValue()));
+ }
+ };
+ }
}