public void RootTranslation() { var rootTranslator = new RootTranslator(); var pathTable = Context.PathTable; // Source is shorter than target var shortCaseSourceTranslatedRootPath = GetFullPath(pathTable, "ShortSource").Expand(pathTable); var shortCaseTargetTranslatedRootPath = GetFullPath(pathTable, "Short___Target").Expand(pathTable); rootTranslator.AddTranslation( shortCaseSourceTranslatedRootPath.ExpandedPath, shortCaseTargetTranslatedRootPath.ExpandedPath); // Source is longer than target var longCaseSourceTranslatedRootPath = GetFullPath(pathTable, "LongSourceSource").Expand(pathTable); var longCaseTargetTranslatedRootPath = GetFullPath(pathTable, "LongTarget").Expand(pathTable); rootTranslator.AddTranslation( longCaseSourceTranslatedRootPath.ExpandedPath, longCaseTargetTranslatedRootPath.ExpandedPath); rootTranslator.Seal(); var cache = new CacheCoreArtifactContentCache(Session, rootTranslator); // SHORTER SOURCE, SAME ROOT: Path should NOT be translated VerifyExpandedPathForCacheEquals(cache, shortCaseSourceTranslatedRootPath, shortCaseSourceTranslatedRootPath); // LONGER SOURCE, SAME ROOT: Path SHOULD be translated VerifyExpandedPathForCacheEquals(cache, longCaseSourceTranslatedRootPath, longCaseTargetTranslatedRootPath); }
public CacheCoreFingerprintStoreTests(ITestOutputHelper output) : base(output) { Context = BuildXLContext.CreateInstanceForTesting(); FingerprintStore = new CacheCoreFingerprintStore(Session); ContentCache = new CacheCoreArtifactContentCache(Session, rootTranslator: null); }
private static async Task LoadContentAndExpectAvailable(CacheCoreArtifactContentCache cache, ContentHash hash) { Possible <ContentAvailabilityBatchResult> possiblyLoaded = await cache.TryLoadAvailableContentAsync(new List <ContentHash>() { hash }); XAssert.IsTrue(possiblyLoaded.Succeeded); XAssert.IsTrue(possiblyLoaded.Result.AllContentAvailable); }
private void VerifyExpandedPathForCacheEquals(CacheCoreArtifactContentCache cache, ExpandedAbsolutePath originalRoot, ExpandedAbsolutePath expectedRoot) { var pathTable = Context.PathTable; string fileName = "bits.txt"; var originalRootExpandedPath = AbsolutePath.Create(pathTable, R(originalRoot.ExpandedPath, fileName)).Expand(pathTable); var expectedRootExpandedPath = AbsolutePath.Create(pathTable, R(expectedRoot.ExpandedPath, fileName)).Expand(pathTable); Assert.Equal( expectedRootExpandedPath.ExpandedPath, cache.GetExpandedPathForCache(originalRootExpandedPath)); }
public override EngineCache CreateCacheForContext(PipExecutionContext context) { IArtifactContentCache contentCache = new CacheCoreArtifactContentCache( m_session, rootTranslator: m_rootTranslator); ITwoPhaseFingerprintStore twoPhase; if (IsFingerprintLookupEnabled) { twoPhase = new CacheCoreFingerprintStore(m_session); } else { twoPhase = new EmptyTwoPhaseFingerprintStore(); } return(new EngineCache(contentCache, twoPhase)); }
public override EngineCache CreateCacheForContext() { IArtifactContentCache contentCache = new CacheCoreArtifactContentCache( m_session, rootTranslator: m_rootTranslator, replaceExistingFileOnMaterialization: m_replaceExistingFileOnMaterialization); ITwoPhaseFingerprintStore twoPhase; if (IsFingerprintLookupEnabled) { twoPhase = new CacheCoreFingerprintStore(m_session); } else { twoPhase = new EmptyTwoPhaseFingerprintStore(); } return(new EngineCache(contentCache, twoPhase)); }
public void RootTranslationDifferentRoots() { var rootTranslator = new RootTranslator(); var pathTable = Context.PathTable; // Source is shorter than target but has different root var shortCaseChangeRootSourceTranslatedRootPath = ChangeRoot(GetFullPath(pathTable, "ShortChangeRootSrc"), pathTable, newRoot: 'A'); var shortCaseChangeRootTargetTranslatedRootPath = ChangeRoot(GetFullPath(pathTable, "ShortChangeRootTarget"), pathTable, newRoot: 'B'); rootTranslator.AddTranslation( shortCaseChangeRootSourceTranslatedRootPath.ExpandedPath, shortCaseChangeRootTargetTranslatedRootPath.ExpandedPath); rootTranslator.Seal(); var cache = new CacheCoreArtifactContentCache(Session, rootTranslator); // SHORTER SOURCE, DIFFERENT ROOT: Path SHOULD be translated VerifyExpandedPathForCacheEquals(cache, shortCaseChangeRootSourceTranslatedRootPath, shortCaseChangeRootTargetTranslatedRootPath); }