use of com.facebook.buck.util.cache.NullFileHashCache in project buck by facebook.
the class TargetGraphHashingTest method emptyTargetGraphHasEmptyHashes.
@Test
public void emptyTargetGraphHasEmptyHashes() throws IOException, InterruptedException, AcyclicDepthFirstPostOrderTraversal.CycleException {
BuckEventBus eventBus = new BuckEventBus(new IncrementingFakeClock(), new BuildId());
TargetGraph targetGraph = TargetGraphFactory.newInstance();
assertThat(new TargetGraphHashing(eventBus, targetGraph, new NullFileHashCache(), ImmutableList.of()).hashTargetGraph().entrySet(), empty());
}
use of com.facebook.buck.util.cache.NullFileHashCache in project buck by facebook.
the class DefaultRuleKeyFactoryTest method shouldAddASingleAnnotatedFieldToRuleKey.
@Test
public void shouldAddASingleAnnotatedFieldToRuleKey() {
BuildTarget target = BuildTargetFactory.newInstance("//cheese:peas");
SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(new BuildRuleResolver(TargetGraph.EMPTY, new DefaultTargetNodeToBuildRuleTransformer()));
SourcePathResolver pathResolver = new SourcePathResolver(ruleFinder);
BuildRule rule = new EmptyRule(target);
DefaultRuleKeyFactory factory = new DefaultRuleKeyFactory(0, new NullFileHashCache(), pathResolver, ruleFinder);
RuleKeyBuilder<RuleKeyResult<RuleKey>> builder = factory.newBuilderForTesting(rule);
builder.setReflectively("field", "cake-walk");
RuleKey expected = builder.build().result;
class DecoratedFields extends EmptyRule {
@AddToRuleKey
private String field = "cake-walk";
public DecoratedFields(BuildTarget target) {
super(target);
}
}
RuleKey seen = factory.build(new DecoratedFields(target));
assertEquals(expected, seen);
}
use of com.facebook.buck.util.cache.NullFileHashCache in project buck by facebook.
the class DefaultRuleKeyFactoryTest method shouldAllowRuleKeyAppendablesToAppendToRuleKey.
@Test
public void shouldAllowRuleKeyAppendablesToAppendToRuleKey() {
BuildTarget target = BuildTargetFactory.newInstance("//cheese:peas");
SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(new BuildRuleResolver(TargetGraph.EMPTY, new DefaultTargetNodeToBuildRuleTransformer()));
SourcePathResolver pathResolver = new SourcePathResolver(ruleFinder);
BuildRule rule = new EmptyRule(target);
FileHashCache fileHashCache = new NullFileHashCache();
DefaultRuleKeyFactory factory = new DefaultRuleKeyFactory(0, fileHashCache, pathResolver, ruleFinder);
RuleKey subKey = new UncachedRuleKeyBuilder(ruleFinder, pathResolver, fileHashCache, factory).setReflectively("cheese", "brie").build();
RuleKeyBuilder<RuleKeyResult<RuleKey>> builder = factory.newBuilderForTesting(rule);
try (RuleKeyScopedHasher.Scope keyScope = builder.getScopedHasher().keyScope("field")) {
try (RuleKeyScopedHasher.Scope appendableScope = builder.getScopedHasher().wrapperScope(RuleKeyHasher.Wrapper.APPENDABLE)) {
builder.getScopedHasher().getHasher().putRuleKey(subKey);
}
}
RuleKey expected = builder.build().result;
class AppendingField extends EmptyRule {
@AddToRuleKey
private Appender field = new Appender();
public AppendingField(BuildTarget target) {
super(target);
}
}
RuleKey seen = factory.build(new AppendingField(target));
assertEquals(expected, seen);
}
use of com.facebook.buck.util.cache.NullFileHashCache in project buck by facebook.
the class DefaultRuleKeyFactoryTest method shouldAllowAFieldToBeStringified.
@Test
public void shouldAllowAFieldToBeStringified() {
BuildTarget target = BuildTargetFactory.newInstance("//cheese:peas");
SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(new BuildRuleResolver(TargetGraph.EMPTY, new DefaultTargetNodeToBuildRuleTransformer()));
SourcePathResolver pathResolver = new SourcePathResolver(ruleFinder);
BuildRule rule = new EmptyRule(target);
DefaultRuleKeyFactory factory = new DefaultRuleKeyFactory(0, new NullFileHashCache(), pathResolver, ruleFinder);
RuleKeyBuilder<RuleKeyResult<RuleKey>> builder = factory.newBuilderForTesting(rule);
builder.setReflectively("field", "sausages");
RuleKey expected = builder.build().result;
class Stringifiable {
@Override
public String toString() {
return "sausages";
}
}
class StringifiedField extends EmptyRule {
@AddToRuleKey(stringify = true)
private Stringifiable field = new Stringifiable();
public StringifiedField(BuildTarget target) {
super(target);
}
}
RuleKey seen = factory.build(new StringifiedField(target));
assertEquals(expected, seen);
}
use of com.facebook.buck.util.cache.NullFileHashCache in project buck by facebook.
the class DefaultRuleKeyFactoryTest method assertKeysGetHashed.
private void assertKeysGetHashed(@Nullable Object val) {
BuildTarget target = BuildTargetFactory.newInstance("//cheese:peas");
SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(new BuildRuleResolver(TargetGraph.EMPTY, new DefaultTargetNodeToBuildRuleTransformer()));
SourcePathResolver pathResolver = new SourcePathResolver(ruleFinder);
BuildRule rule = new EmptyRule(target);
DefaultRuleKeyFactory factory = new DefaultRuleKeyFactory(0, new NullFileHashCache(), pathResolver, ruleFinder);
RuleKey key1 = factory.newBuilderForTesting(rule).setReflectively("key1", val).build().result;
RuleKey key1again = factory.newBuilderForTesting(rule).setReflectively("key1", val).build().result;
RuleKey key2 = factory.newBuilderForTesting(rule).setReflectively("key2", val).build().result;
assertEquals("Rule keys should be same! " + val, key1, key1again);
assertNotEquals("Rule keys should be different! " + val, key1, key2);
}
Aggregations