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); }
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); }
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);