@@ -142,9 +142,9 @@ pub fn process_tarball<R: Read>(
142
142
#[ cfg( test) ]
143
143
mod tests {
144
144
use super :: process_tarball;
145
- use crate :: { TarballBuilder , TarballError } ;
145
+ use crate :: TarballBuilder ;
146
146
use cargo_manifest:: { MaybeInherited , StringOrBool } ;
147
- use std :: path :: PathBuf ;
147
+ use insta :: assert_snapshot ;
148
148
149
149
#[ test]
150
150
fn process_tarball_test ( ) {
@@ -158,7 +158,8 @@ mod tests {
158
158
let tarball_info = assert_ok ! ( process_tarball( "foo-0.0.1" , & * tarball, limit) ) ;
159
159
assert_none ! ( tarball_info. vcs_info) ;
160
160
161
- assert_err ! ( process_tarball( "bar-0.0.1" , & * tarball, limit) ) ;
161
+ let err = assert_err ! ( process_tarball( "bar-0.0.1" , & * tarball, limit) ) ;
162
+ assert_snapshot ! ( err, @"invalid path found: foo-0.0.1/Cargo.toml" ) ;
162
163
}
163
164
164
165
#[ test]
@@ -292,26 +293,28 @@ mod tests {
292
293
293
294
#[ test]
294
295
fn process_tarball_test_incorrect_manifest_casing ( ) {
295
- for file in [ "CARGO.TOML" , "Cargo.Toml" ] {
296
- let manifest = br#"
296
+ let manifest = br#"
297
297
[package]
298
298
name = "foo"
299
299
version = "0.0.1"
300
300
repository = "https://github.com/foo/bar"
301
301
"# ;
302
+
303
+ let limit = 512 * 1024 * 1024 ;
304
+
305
+ let process = |file : & str | {
302
306
let tarball = TarballBuilder :: new ( )
303
307
. add_file ( & format ! ( "foo-0.0.1/{file}" ) , manifest)
304
308
. build ( ) ;
305
309
306
- let limit = 512 * 1024 * 1024 ;
310
+ process_tarball ( "foo-0.0.1" , & * tarball, limit)
311
+ } ;
307
312
308
- let err = assert_err ! ( process_tarball( "foo-0.0.1" , & * tarball, limit) ) ;
309
- if let TarballError :: IncorrectlyCasedManifest ( have) = err {
310
- assert_eq ! ( have, PathBuf :: from( file) ) ;
311
- } else {
312
- panic ! ( "expected IncorrectlyCasedManifest, got {err:?} instead" ) ;
313
- }
314
- }
313
+ let err = assert_err ! ( process( "CARGO.TOML" ) ) ;
314
+ assert_snapshot ! ( err, @r###"Cargo.toml manifest is incorrectly cased: "CARGO.TOML""### ) ;
315
+
316
+ let err = assert_err ! ( process( "Cargo.Toml" ) ) ;
317
+ assert_snapshot ! ( err, @r###"Cargo.toml manifest is incorrectly cased: "Cargo.Toml""### ) ;
315
318
}
316
319
317
320
#[ test]
@@ -323,32 +326,26 @@ mod tests {
323
326
repository = "https://github.com/foo/bar"
324
327
"# ;
325
328
326
- for files in [
327
- vec ! [ "cargo.toml" , "Cargo.toml" ] ,
328
- vec ! [ "Cargo.toml" , "Cargo.Toml" ] ,
329
- vec ! [ "Cargo.toml" , "cargo.toml" , "CARGO.TOML" ] ,
330
- ] {
329
+ let limit = 512 * 1024 * 1024 ;
330
+
331
+ let process = |files : Vec < & str > | {
331
332
let tarball = files
332
333
. iter ( )
333
334
. fold ( TarballBuilder :: new ( ) , |builder, file| {
334
335
builder. add_file ( & format ! ( "foo-0.0.1/{file}" ) , manifest)
335
336
} )
336
337
. build ( ) ;
337
338
338
- let limit = 512 * 1024 * 1024 ;
339
+ process_tarball ( "foo-0.0.1" , & * tarball, limit)
340
+ } ;
339
341
340
- let err = assert_err ! ( process_tarball( "foo-0.0.1" , & * tarball, limit) ) ;
341
- if let TarballError :: TooManyManifests ( have) = err {
342
- let mut want: Vec < _ > = files
343
- . into_iter ( )
344
- . map ( |file| PathBuf :: from ( "foo-0.0.1" ) . join ( file) )
345
- . collect ( ) ;
346
- want. sort ( ) ;
342
+ let err = assert_err ! ( process( vec![ "cargo.toml" , "Cargo.toml" ] ) ) ;
343
+ assert_snapshot ! ( err, @r###"more than one Cargo.toml manifest in tarball: ["foo-0.0.1/Cargo.toml", "foo-0.0.1/cargo.toml"]"### ) ;
347
344
348
- assert_eq ! ( have , want ) ;
349
- } else {
350
- panic ! ( "expected TooManyManifests, got {err:?} instead" ) ;
351
- }
352
- }
345
+ let err = assert_err ! ( process ( vec! [ "Cargo.toml" , "Cargo.Toml" ] ) ) ;
346
+ assert_snapshot ! ( err , @ r###"more than one Cargo.toml manifest in tarball: ["foo-0.0.1/Cargo.Toml", "foo-0.0.1/Cargo.toml"]"### ) ;
347
+
348
+ let err = assert_err ! ( process ( vec! [ "Cargo.toml" , "cargo.toml" , "CARGO.TOML" ] ) ) ;
349
+ assert_snapshot ! ( err , @ r###"more than one Cargo.toml manifest in tarball: ["foo-0.0.1/CARGO.TOML", "foo-0.0.1/Cargo.toml", "foo-0.0.1/cargo.toml"]"### ) ;
353
350
}
354
351
}
0 commit comments