File tree Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -164,6 +164,13 @@ fn run_command(
164
164
)
165
165
} ) ?;
166
166
if let Some ( end) = buffer. find ( '\n' ) {
167
+ if buffer. len ( ) > end + 1 {
168
+ bail ! (
169
+ "credential process `{}` returned more than one line of output; \
170
+ expected a single token",
171
+ exe. display( )
172
+ ) ;
173
+ }
167
174
buffer. truncate ( end) ;
168
175
}
169
176
token = Some ( buffer) ;
Original file line number Diff line number Diff line change @@ -448,3 +448,45 @@ Caused by:
448
448
)
449
449
. run ( ) ;
450
450
}
451
+
452
+ #[ cargo_test]
453
+ fn invalid_token_output ( ) {
454
+ // Error when credential process does not output the expected format for a token.
455
+ registry:: init ( ) ;
456
+ paths:: home ( ) . join ( ".cargo/credentials" ) . rm_rf ( ) ;
457
+ let cred_proj = project ( )
458
+ . at ( "cred_proj" )
459
+ . file ( "Cargo.toml" , & basic_manifest ( "test-cred" , "1.0.0" ) )
460
+ . file ( "src/main.rs" , r#"fn main() { print!("a\nb\n"); } "# )
461
+ . build ( ) ;
462
+ cred_proj. cargo ( "build" ) . run ( ) ;
463
+
464
+ cargo:: util:: paths:: append (
465
+ & paths:: home ( ) . join ( ".cargo/config" ) ,
466
+ format ! (
467
+ r#"
468
+ [registry]
469
+ credential-process = ["{}"]
470
+ "# ,
471
+ toml_bin( & cred_proj, "test-cred" )
472
+ )
473
+ . as_bytes ( ) ,
474
+ )
475
+ . unwrap ( ) ;
476
+
477
+ let p = project ( )
478
+ . file ( "Cargo.toml" , & basic_manifest ( "foo" , "1.0.0" ) )
479
+ . file ( "src/lib.rs" , "" )
480
+ . build ( ) ;
481
+
482
+ p. cargo ( "publish --no-verify --registry alternative -Z credential-process" )
483
+ . masquerade_as_nightly_cargo ( )
484
+ . with_status ( 101 )
485
+ . with_stderr (
486
+ "\
487
+ [UPDATING] [..]
488
+ [ERROR] credential process `[..]test-cred[EXE]` returned more than one line of output; expected a single token
489
+ " ,
490
+ )
491
+ . run ( ) ;
492
+ }
You can’t perform that action at this time.
0 commit comments