@@ -9,10 +9,12 @@ use cargo_test_support::str;
99const ECHO_SCRIPT : & str = r#"#!/usr/bin/env cargo
1010
1111fn main() {
12+ let current_exe = std::env::current_exe().unwrap().to_str().unwrap().to_owned();
1213 let mut args = std::env::args_os();
13- let bin = args.next().unwrap().to_str().unwrap().to_owned();
14+ let arg0 = args.next().unwrap().to_str().unwrap().to_owned();
1415 let args = args.collect::<Vec<_>>();
15- println!("bin: {bin}");
16+ println!("current_exe: {current_exe}");
17+ println!("arg0: {arg0}");
1618 println!("args: {args:?}");
1719}
1820
@@ -34,7 +36,58 @@ fn basic_rs() {
3436 p. cargo ( "-Zscript -v echo.rs" )
3537 . masquerade_as_nightly_cargo ( & [ "script" ] )
3638 . with_stdout_data ( str![ [ r#"
37- bin: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
39+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
40+ arg0: [..]
41+ args: []
42+
43+ "# ] ] )
44+ . with_stderr_data ( str![ [ r#"
45+ [WARNING] `package.edition` is unspecified, defaulting to `2024`
46+ [COMPILING] echo v0.0.0 ([ROOT]/foo/echo.rs)
47+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
48+ [RUNNING] `[ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]`
49+
50+ "# ] ] )
51+ . run ( ) ;
52+ }
53+
54+ #[ cfg( unix) ]
55+ #[ cargo_test( nightly, reason = "-Zscript is unstable" ) ]
56+ fn arg0 ( ) {
57+ let p = cargo_test_support:: project ( )
58+ . file ( "echo.rs" , ECHO_SCRIPT )
59+ . build ( ) ;
60+
61+ p. cargo ( "-Zscript -v echo.rs" )
62+ . masquerade_as_nightly_cargo ( & [ "script" ] )
63+ . with_stdout_data ( str![ [ r#"
64+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
65+ arg0: [ROOT]/foo/echo.rs
66+ args: []
67+
68+ "# ] ] )
69+ . with_stderr_data ( str![ [ r#"
70+ [WARNING] `package.edition` is unspecified, defaulting to `2024`
71+ [COMPILING] echo v0.0.0 ([ROOT]/foo/echo.rs)
72+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
73+ [RUNNING] `[ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]`
74+
75+ "# ] ] )
76+ . run ( ) ;
77+ }
78+
79+ #[ cfg( windows) ]
80+ #[ cargo_test( nightly, reason = "-Zscript is unstable" ) ]
81+ fn arg0 ( ) {
82+ let p = cargo_test_support:: project ( )
83+ . file ( "echo.rs" , ECHO_SCRIPT )
84+ . build ( ) ;
85+
86+ p. cargo ( "-Zscript -v echo.rs" )
87+ . masquerade_as_nightly_cargo ( & [ "script" ] )
88+ . with_stdout_data ( str![ [ r#"
89+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
90+ arg0: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
3891args: []
3992
4093"# ] ] )
@@ -57,7 +110,8 @@ fn basic_path() {
57110 p. cargo ( "-Zscript -v ./echo" )
58111 . masquerade_as_nightly_cargo ( & [ "script" ] )
59112 . with_stdout_data ( str![ [ r#"
60- bin: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
113+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
114+ arg0: [..]
61115args: []
62116
63117"# ] ] )
@@ -111,7 +165,8 @@ fn manifest_precedence_over_plugins() {
111165 . env ( "PATH" , & path)
112166 . masquerade_as_nightly_cargo ( & [ "script" ] )
113167 . with_stdout_data ( str![ [ r#"
114- bin: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
168+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
169+ arg0: [..]
115170args: []
116171
117172"# ] ] )
@@ -361,7 +416,8 @@ rustc = "non-existent-rustc"
361416 p. cargo ( "-Zscript script.rs -NotAnArg" )
362417 . masquerade_as_nightly_cargo ( & [ "script" ] )
363418 . with_stdout_data ( str![ [ r#"
364- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
419+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
420+ arg0: [..]
365421args: ["-NotAnArg"]
366422
367423"# ] ] )
@@ -371,7 +427,8 @@ args: ["-NotAnArg"]
371427 p. cargo ( "-Zscript ../script/script.rs -NotAnArg" )
372428 . masquerade_as_nightly_cargo ( & [ "script" ] )
373429 . with_stdout_data ( str![ [ r#"
374- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
430+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
431+ arg0: [..]
375432args: ["-NotAnArg"]
376433
377434"# ] ] )
@@ -412,7 +469,8 @@ fn default_programmatic_verbosity() {
412469 p. cargo ( "-Zscript script.rs -NotAnArg" )
413470 . masquerade_as_nightly_cargo ( & [ "script" ] )
414471 . with_stdout_data ( str![ [ r#"
415- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
472+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
473+ arg0: [..]
416474args: ["-NotAnArg"]
417475
418476"# ] ] )
@@ -430,7 +488,8 @@ fn quiet() {
430488 p. cargo ( "-Zscript -q script.rs -NotAnArg" )
431489 . masquerade_as_nightly_cargo ( & [ "script" ] )
432490 . with_stdout_data ( str![ [ r#"
433- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
491+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
492+ arg0: [..]
434493args: ["-NotAnArg"]
435494
436495"# ] ] )
@@ -476,7 +535,8 @@ fn test_escaped_hyphen_arg() {
476535 p. cargo ( "-Zscript -v -- script.rs -NotAnArg" )
477536 . masquerade_as_nightly_cargo ( & [ "script" ] )
478537 . with_stdout_data ( str![ [ r#"
479- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
538+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
539+ arg0: [..]
480540args: ["-NotAnArg"]
481541
482542"# ] ] )
@@ -500,7 +560,8 @@ fn test_unescaped_hyphen_arg() {
500560 p. cargo ( "-Zscript -v script.rs -NotAnArg" )
501561 . masquerade_as_nightly_cargo ( & [ "script" ] )
502562 . with_stdout_data ( str![ [ r#"
503- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
563+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
564+ arg0: [..]
504565args: ["-NotAnArg"]
505566
506567"# ] ] )
@@ -524,7 +585,8 @@ fn test_same_flags() {
524585 p. cargo ( "-Zscript -v script.rs --help" )
525586 . masquerade_as_nightly_cargo ( & [ "script" ] )
526587 . with_stdout_data ( str![ [ r#"
527- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
588+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
589+ arg0: [..]
528590args: ["--help"]
529591
530592"# ] ] )
@@ -548,7 +610,8 @@ fn test_name_has_weird_chars() {
548610 p. cargo ( "-Zscript -v s-h.w§c!.rs" )
549611 . masquerade_as_nightly_cargo ( & [ "script" ] )
550612 . with_stdout_data ( str![ [ r#"
551- bin: [ROOT]/home/.cargo/target/[HASH]/debug/s-h-w-c-[EXE]
613+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/s-h-w-c-[EXE]
614+ arg0: [..]
552615args: []
553616
554617"# ] ] )
@@ -572,7 +635,8 @@ fn test_name_has_leading_number() {
572635 p. cargo ( "-Zscript -v 42answer.rs" )
573636 . masquerade_as_nightly_cargo ( & [ "script" ] )
574637 . with_stdout_data ( str![ [ r#"
575- bin: [ROOT]/home/.cargo/target/[HASH]/debug/answer[EXE]
638+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/answer[EXE]
639+ arg0: [..]
576640args: []
577641
578642"# ] ] )
@@ -594,7 +658,8 @@ fn test_name_is_number() {
594658 p. cargo ( "-Zscript -v 42.rs" )
595659 . masquerade_as_nightly_cargo ( & [ "script" ] )
596660 . with_stdout_data ( str![ [ r#"
597- bin: [ROOT]/home/.cargo/target/[HASH]/debug/package[EXE]
661+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/package[EXE]
662+ arg0: [..]
598663args: []
599664
600665"# ] ] )
@@ -1288,7 +1353,8 @@ fn implicit_target_dir() {
12881353 p. cargo ( "-Zscript -v script.rs" )
12891354 . masquerade_as_nightly_cargo ( & [ "script" ] )
12901355 . with_stdout_data ( str![ [ r#"
1291- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1356+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1357+ arg0: [..]
12921358args: []
12931359
12941360"# ] ] )
@@ -1315,7 +1381,8 @@ fn no_local_lockfile() {
13151381 p. cargo ( "-Zscript -v script.rs" )
13161382 . masquerade_as_nightly_cargo ( & [ "script" ] )
13171383 . with_stdout_data ( str![ [ r#"
1318- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1384+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1385+ arg0: [..]
13191386args: []
13201387
13211388"# ] ] )
@@ -1661,7 +1728,8 @@ fn cmd_run_with_embedded() {
16611728 p. cargo ( "-Zscript run --manifest-path script.rs" )
16621729 . masquerade_as_nightly_cargo ( & [ "script" ] )
16631730 . with_stdout_data ( str![ [ r#"
1664- bin: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1731+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/script[EXE]
1732+ arg0: [..]
16651733args: []
16661734
16671735"# ] ] )
@@ -1961,7 +2029,8 @@ members = [
19612029 p. cargo ( "-Zscript -v script/echo.rs" )
19622030 . masquerade_as_nightly_cargo ( & [ "script" ] )
19632031 . with_stdout_data ( str![ [ r#"
1964- bin: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
2032+ current_exe: [ROOT]/home/.cargo/target/[HASH]/debug/echo[EXE]
2033+ arg0: [..]
19652034args: []
19662035
19672036"# ] ] )
0 commit comments