From 7d69275892cff1aff27b8a44b29c2e37fc130cff Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 27 Jul 2023 16:50:01 +0200 Subject: [PATCH 1/2] tests/builders/publish: Use `TarballBuilder` to simplify `files()` fn --- src/tests/builders/publish.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/tests/builders/publish.rs b/src/tests/builders/publish.rs index 259154e73c2..ad3a955b2ed 100644 --- a/src/tests/builders/publish.rs +++ b/src/tests/builders/publish.rs @@ -2,7 +2,6 @@ use crates_io::views::krate_publish as u; use std::collections::BTreeMap; use crates_io_tarball::TarballBuilder; -use flate2::{write::GzEncoder, Compression}; use super::DependencyBuilder; @@ -50,18 +49,13 @@ impl PublishBuilder { /// Set the files in the crate's tarball. pub fn files(mut self, files: &[(&str, &[u8])]) -> Self { - let mut tarball = Vec::new(); - { - let mut ar = tar::Builder::new(GzEncoder::new(&mut tarball, Compression::default())); - for (name, data) in files { - let mut header = tar::Header::new_gnu(); - header.set_size(data.len() as u64); - assert_ok!(ar.append_data(&mut header, name, *data)); - } - assert_ok!(ar.finish()); + let mut builder = TarballBuilder::new(&self.krate_name, &self.version.to_string()); + + for (name, data) in files { + builder = builder.add_file(name, data); } - self.tarball = tarball; + self.tarball = builder.build(); self } From b2d0ade896161f6949c790a07ea7cf8916ceeba6 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 27 Jul 2023 18:27:26 +0200 Subject: [PATCH 2/2] tests/builders/publish: Use `self.tarball()` to simplify `files()` fn --- src/tests/builders/publish.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tests/builders/publish.rs b/src/tests/builders/publish.rs index ad3a955b2ed..83b1ad0f335 100644 --- a/src/tests/builders/publish.rs +++ b/src/tests/builders/publish.rs @@ -48,15 +48,14 @@ impl PublishBuilder { } /// Set the files in the crate's tarball. - pub fn files(mut self, files: &[(&str, &[u8])]) -> Self { + pub fn files(self, files: &[(&str, &[u8])]) -> Self { let mut builder = TarballBuilder::new(&self.krate_name, &self.version.to_string()); for (name, data) in files { builder = builder.add_file(name, data); } - self.tarball = builder.build(); - self + self.tarball(builder.build()) } /// Set the tarball directly to the given Vec of bytes