@@ -9,10 +9,12 @@ use cargo_test_support::str;
9
9
const ECHO_SCRIPT : & str = r#"#!/usr/bin/env cargo
10
10
11
11
fn main() {
12
+ let current_exe = std::env::current_exe().unwrap().to_str().unwrap().to_owned();
12
13
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();
14
15
let args = args.collect::<Vec<_>>();
15
- println!("bin: {bin}");
16
+ println!("current_exe: {current_exe}");
17
+ println!("arg0: {arg0}");
16
18
println!("args: {args:?}");
17
19
}
18
20
@@ -34,7 +36,58 @@ fn basic_rs() {
34
36
p. cargo ( "-Zscript -v echo.rs" )
35
37
. masquerade_as_nightly_cargo ( & [ "script" ] )
36
38
. 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]
38
91
args: []
39
92
40
93
"# ] ] )
@@ -57,7 +110,8 @@ fn basic_path() {
57
110
p. cargo ( "-Zscript -v ./echo" )
58
111
. masquerade_as_nightly_cargo ( & [ "script" ] )
59
112
. 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: [..]
61
115
args: []
62
116
63
117
"# ] ] )
@@ -111,7 +165,8 @@ fn manifest_precedence_over_plugins() {
111
165
. env ( "PATH" , & path)
112
166
. masquerade_as_nightly_cargo ( & [ "script" ] )
113
167
. 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: [..]
115
170
args: []
116
171
117
172
"# ] ] )
@@ -361,7 +416,8 @@ rustc = "non-existent-rustc"
361
416
p. cargo ( "-Zscript script.rs -NotAnArg" )
362
417
. masquerade_as_nightly_cargo ( & [ "script" ] )
363
418
. 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: [..]
365
421
args: ["-NotAnArg"]
366
422
367
423
"# ] ] )
@@ -371,7 +427,8 @@ args: ["-NotAnArg"]
371
427
p. cargo ( "-Zscript ../script/script.rs -NotAnArg" )
372
428
. masquerade_as_nightly_cargo ( & [ "script" ] )
373
429
. 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: [..]
375
432
args: ["-NotAnArg"]
376
433
377
434
"# ] ] )
@@ -412,7 +469,8 @@ fn default_programmatic_verbosity() {
412
469
p. cargo ( "-Zscript script.rs -NotAnArg" )
413
470
. masquerade_as_nightly_cargo ( & [ "script" ] )
414
471
. 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: [..]
416
474
args: ["-NotAnArg"]
417
475
418
476
"# ] ] )
@@ -430,7 +488,8 @@ fn quiet() {
430
488
p. cargo ( "-Zscript -q script.rs -NotAnArg" )
431
489
. masquerade_as_nightly_cargo ( & [ "script" ] )
432
490
. 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: [..]
434
493
args: ["-NotAnArg"]
435
494
436
495
"# ] ] )
@@ -476,7 +535,8 @@ fn test_escaped_hyphen_arg() {
476
535
p. cargo ( "-Zscript -v -- script.rs -NotAnArg" )
477
536
. masquerade_as_nightly_cargo ( & [ "script" ] )
478
537
. 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: [..]
480
540
args: ["-NotAnArg"]
481
541
482
542
"# ] ] )
@@ -500,7 +560,8 @@ fn test_unescaped_hyphen_arg() {
500
560
p. cargo ( "-Zscript -v script.rs -NotAnArg" )
501
561
. masquerade_as_nightly_cargo ( & [ "script" ] )
502
562
. 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: [..]
504
565
args: ["-NotAnArg"]
505
566
506
567
"# ] ] )
@@ -524,7 +585,8 @@ fn test_same_flags() {
524
585
p. cargo ( "-Zscript -v script.rs --help" )
525
586
. masquerade_as_nightly_cargo ( & [ "script" ] )
526
587
. 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: [..]
528
590
args: ["--help"]
529
591
530
592
"# ] ] )
@@ -548,7 +610,8 @@ fn test_name_has_weird_chars() {
548
610
p. cargo ( "-Zscript -v s-h.w§c!.rs" )
549
611
. masquerade_as_nightly_cargo ( & [ "script" ] )
550
612
. 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: [..]
552
615
args: []
553
616
554
617
"# ] ] )
@@ -572,7 +635,8 @@ fn test_name_has_leading_number() {
572
635
p. cargo ( "-Zscript -v 42answer.rs" )
573
636
. masquerade_as_nightly_cargo ( & [ "script" ] )
574
637
. 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: [..]
576
640
args: []
577
641
578
642
"# ] ] )
@@ -594,7 +658,8 @@ fn test_name_is_number() {
594
658
p. cargo ( "-Zscript -v 42.rs" )
595
659
. masquerade_as_nightly_cargo ( & [ "script" ] )
596
660
. 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: [..]
598
663
args: []
599
664
600
665
"# ] ] )
@@ -1288,7 +1353,8 @@ fn implicit_target_dir() {
1288
1353
p. cargo ( "-Zscript -v script.rs" )
1289
1354
. masquerade_as_nightly_cargo ( & [ "script" ] )
1290
1355
. 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: [..]
1292
1358
args: []
1293
1359
1294
1360
"# ] ] )
@@ -1315,7 +1381,8 @@ fn no_local_lockfile() {
1315
1381
p. cargo ( "-Zscript -v script.rs" )
1316
1382
. masquerade_as_nightly_cargo ( & [ "script" ] )
1317
1383
. 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: [..]
1319
1386
args: []
1320
1387
1321
1388
"# ] ] )
@@ -1661,7 +1728,8 @@ fn cmd_run_with_embedded() {
1661
1728
p. cargo ( "-Zscript run --manifest-path script.rs" )
1662
1729
. masquerade_as_nightly_cargo ( & [ "script" ] )
1663
1730
. 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: [..]
1665
1733
args: []
1666
1734
1667
1735
"# ] ] )
@@ -1961,7 +2029,8 @@ members = [
1961
2029
p. cargo ( "-Zscript -v script/echo.rs" )
1962
2030
. masquerade_as_nightly_cargo ( & [ "script" ] )
1963
2031
. 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: [..]
1965
2034
args: []
1966
2035
1967
2036
"# ] ] )
0 commit comments