Ejemplo n.º 1
0
        public void TestSelect_invalidLayerDigest()
        {
            CacheStorageFiles cacheStorageFiles =
                new CacheStorageFiles(temporaryFolder.NewFolder().ToPath());

            CacheStorageReader cacheStorageReader = new CacheStorageReader(cacheStorageFiles);

            DescriptorDigest selector     = layerDigest1;
            SystemPath       selectorFile = cacheStorageFiles.GetSelectorFile(selector);

            Files.CreateDirectories(selectorFile.GetParent());
            Files.Write(selectorFile, Encoding.UTF8.GetBytes("not a valid layer digest"));

            try
            {
                cacheStorageReader.Select(selector);
                Assert.Fail("Should have thrown CacheCorruptedException");
            }
            catch (CacheCorruptedException ex)
            {
                Assert.That(
                    ex.Message,
                    Does.StartWith(
                        "Expected valid layer digest as contents of selector file `"
                        + selectorFile
                        + "` for selector `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`, but got: not a valid layer digest"));
            }
        }
Ejemplo n.º 2
0
        public void TestGetSelectorFile()
        {
            DescriptorDigest selector =
                DescriptorDigest.FromHash(
                    "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc");

            Assert.AreEqual(
                Paths.Get(
                    "cache",
                    "directory",
                    "selectors",
                    "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"),
                TEST_CACHE_STORAGE_FILES.GetSelectorFile(selector));
        }
Ejemplo n.º 3
0
        public void TestSelect()
        {
            CacheStorageFiles cacheStorageFiles =
                new CacheStorageFiles(temporaryFolder.NewFolder().ToPath());

            CacheStorageReader cacheStorageReader = new CacheStorageReader(cacheStorageFiles);

            DescriptorDigest selector     = layerDigest1;
            SystemPath       selectorFile = cacheStorageFiles.GetSelectorFile(selector);

            Files.CreateDirectories(selectorFile.GetParent());
            Files.Write(selectorFile, Encoding.UTF8.GetBytes(layerDigest2.GetHash()));

            Maybe <DescriptorDigest> selectedLayerDigest = cacheStorageReader.Select(selector);

            Assert.IsTrue(selectedLayerDigest.IsPresent());
            Assert.AreEqual(layerDigest2, selectedLayerDigest.Get());
        }
Ejemplo n.º 4
0
        public async Task TestWrite_uncompressedAsync()
        {
            IBlob          uncompressedLayerBlob = Blobs.From("uncompressedLayerBlob");
            BlobDescriptor layerDigestDescriptor = await GetDigestAsync(Compress(uncompressedLayerBlob)).ConfigureAwait(false);

            DescriptorDigest layerDigest        = layerDigestDescriptor.GetDigest();
            BlobDescriptor   selectorDescriptor = await GetDigestAsync(Blobs.From("selector")).ConfigureAwait(false);

            DescriptorDigest selector = selectorDescriptor.GetDigest();

            CachedLayer cachedLayer =
                await new CacheStorageWriter(cacheStorageFiles)
                .WriteUncompressedAsync(uncompressedLayerBlob, selector).ConfigureAwait(false);

            await VerifyCachedLayerAsync(cachedLayer, uncompressedLayerBlob).ConfigureAwait(false);

            // Verifies that the files are present.
            SystemPath selectorFile = cacheStorageFiles.GetSelectorFile(selector);

            Assert.IsTrue(Files.Exists(selectorFile));
            Assert.AreEqual(layerDigest.GetHash(), await Blobs.WriteToStringAsync(Blobs.From(selectorFile)).ConfigureAwait(false));
        }