Esempio n. 1
0
        public async Task AddFileAsync_ValidatesArguments_Async()
        {
            var writer = new TarWriter(Stream.Null);

            await Assert.ThrowsAsync <ArgumentNullException>(() => writer.AddFileAsync(null, Stream.Null, default)).ConfigureAwait(false);

            await Assert.ThrowsAsync <ArgumentNullException>(() => writer.AddFileAsync(string.Empty, null, default)).ConfigureAwait(false);

            await Assert.ThrowsAsync <ArgumentNullException>(() => writer.AddFileAsync(null, LinuxFileMode.None, DateTimeOffset.Now, Stream.Null, default)).ConfigureAwait(false);

            await Assert.ThrowsAsync <ArgumentNullException>(() => writer.AddFileAsync(string.Empty, LinuxFileMode.None, DateTimeOffset.Now, null, default)).ConfigureAwait(false);
        }
Esempio n. 2
0
        private static async Task <Stream> CreateLayerAsync(DeveloperDisk developerDisk, CancellationToken cancellationToken)
        {
            MemoryStream stream = new MemoryStream();
            var          writer = new TarWriter(stream);

            var versionBytes = Encoding.UTF8.GetBytes(developerDisk.Version.ToDictionary().ToXmlPropertyList());

            var fileMode = LinuxFileMode.S_IFREG | LinuxFileMode.S_IRUSR | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IROTH;

            await writer.AddFileAsync("SystemVersion.plist", fileMode, developerDisk.CreationTime, new MemoryStream(versionBytes), cancellationToken).ConfigureAwait(false);

            await writer.AddFileAsync("DeveloperDiskImage.dmg", fileMode, developerDisk.CreationTime, developerDisk.Image, cancellationToken).ConfigureAwait(false);

            await writer.AddFileAsync("DeveloperDiskImage.dmg.signature", fileMode, developerDisk.CreationTime, new MemoryStream(developerDisk.Signature), cancellationToken).ConfigureAwait(false);

            await writer.WriteTrailerAsync(cancellationToken).ConfigureAwait(false);

            stream.Seek(0, SeekOrigin.Begin);

            return(stream);
        }
Esempio n. 3
0
        public async Task CreateSimpleArchive_Async()
        {
            using (MemoryStream tarStream = new MemoryStream())
                using (MemoryStream entryStream = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!\r\n")))
                {
                    var writer = new TarWriter(tarStream);

                    await writer.AddFileAsync(
                        "hello.txt",
                        LinuxFileMode.S_IXOTH | LinuxFileMode.S_IROTH | LinuxFileMode.S_IXGRP | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IXUSR | LinuxFileMode.S_IWUSR | LinuxFileMode.S_IRUSR | LinuxFileMode.S_IFREG,
                        new DateTimeOffset(2021, 4, 19, 15, 13, 11, TimeSpan.Zero),
                        entryStream,
                        default).ConfigureAwait(false);

                    await writer.WriteTrailerAsync(default);