private CompositeGraphFingerprint GenerateRandomTopLevelHash(string configPath, string index, bool flag) { var context1 = BuildXLContext.CreateInstanceForTesting(); var configuration1 = ConfigurationHelpers.GetDefaultForTesting(context1.PathTable, AbsolutePath.Create(context1.PathTable, configPath)); var evaluationFilter1 = new EvaluationFilter( context1.SymbolTable, context1.PathTable, new FullSymbol[0], new[] { AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"testFile{index}.txt")), }, CollectionUtilities.EmptyArray <StringId>()); configuration1.Layout.ObjectDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"ObjectDirectory{index}")); configuration1.Layout.TempDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"TempDirectory{index}")); configuration1.Layout.SourceDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"SourceDirectory{index}")); configuration1.Logging.SubstTarget = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"SubstTarget{index}")); configuration1.Engine.CompressGraphFiles = flag; configuration1.Schedule.SkipHashSourceFile = flag; configuration1.Schedule.ComputePipStaticFingerprints = flag; var loggingContext1 = CreateLoggingContextForTest(); var fileContentTable1 = FileContentTable.CreateNew(loggingContext1); return(GraphFingerprinter.TryComputeFingerprint(loggingContext1, configuration1.Startup, configuration1, context1.PathTable, evaluationFilter1, fileContentTable1, "111aaa", null).ExactFingerprint); }
public void GenerateHashWithDifferentEvaluationFilters() { WriteFile("config.ds", "SampleConfig"); var context1 = BuildXLContext.CreateInstanceForTesting(); var configuration1 = ConfigurationHelpers.GetDefaultForTesting(context1.PathTable, AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, "config.ds"))); var evaluationFilter1 = new EvaluationFilter( context1.SymbolTable, context1.PathTable, new FullSymbol[0], new[] { AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"testFile1.txt")), }, CollectionUtilities.EmptyArray <StringId>()); var evaluationFilter2 = new EvaluationFilter( context1.SymbolTable, context1.PathTable, new FullSymbol[0], new[] { AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"testFile2.txt")), }, CollectionUtilities.EmptyArray <StringId>()); configuration1.Layout.ObjectDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"ObjectDirectory1")); configuration1.Layout.TempDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"TempDirectory1")); configuration1.Layout.SourceDirectory = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"SourceDirectory1")); configuration1.Logging.SubstTarget = AbsolutePath.Create(context1.PathTable, Path.Combine(TemporaryDirectory, $"SubstTarget1")); configuration1.Engine.CompressGraphFiles = false; configuration1.Schedule.SkipHashSourceFile = false; configuration1.Schedule.ComputePipStaticFingerprints = false; var loggingContext1 = CreateLoggingContextForTest(); var fileContentTable1 = FileContentTable.CreateNew(loggingContext1); var oldFingerprint = GraphFingerprinter.TryComputeFingerprint(loggingContext1, configuration1.Startup, configuration1, context1.PathTable, evaluationFilter1, fileContentTable1, "111aaa", null).ExactFingerprint; var newFingerprint1 = GraphFingerprinter.TryComputeFingerprint(loggingContext1, configuration1.Startup, configuration1, context1.PathTable, evaluationFilter2, fileContentTable1, "111aaa", null).ExactFingerprint; var comparison = oldFingerprint.CompareFingerprint(newFingerprint1); Assert.Equal(GraphCacheMissReason.EvaluationFilterChanged, comparison); }