Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }