public void NonCacheableWhitelistPipMiss() { FileArtifact whitelistFile = CreateSourceFile(); var entry = new BuildXLConfiguration.Mutable.FileAccessWhitelistEntry() { Value = "testValue", PathFragment = ArtifactToString(whitelistFile), }; Configuration.FileAccessWhiteList.Add(entry); Process pip = CreateAndSchedulePipBuilder(new Operation[] { Operation.ReadFile(whitelistFile, doNotInfer: true), Operation.WriteFile(CreateOutputFileArtifact()) }).Process; ScheduleRunResult buildA = RunScheduler().AssertCacheMiss(pip.PipId); ScheduleRunResult buildB = RunScheduler().AssertCacheMiss(pip.PipId); var messages = new string[] { "disallowed file accesses", PipCacheMissType.MissForDescriptorsDueToWeakFingerprints.ToString() }; RunAnalyzer(buildA, buildB).AssertPipMiss( pip, PipCacheMissType.MissForDescriptorsDueToWeakFingerprints, messages); }
protected void AddWhitelistEntry(FileArtifact whitelistFile, bool cacheableWhitelist = false) { Configuration.Mutable.FileAccessWhitelistEntry entry = new Configuration.Mutable.FileAccessWhitelistEntry() { Value = "testValue", PathFragment = ArtifactToString(whitelistFile), }; if (cacheableWhitelist) { Configuration.CacheableFileAccessWhitelist.Add(entry); } else { Configuration.FileAccessWhiteList.Add(entry); } }