@@ -4,42 +4,6 @@ namespace Tests;
44
55public class GoArgsTests
66{
7- [ Fact ]
8- public void Split_without_separator_forwards_all_args_to_app ( )
9- {
10- var ( dotnet , app ) = GoArgs . Split ( [ "--foo" , "bar" ] ) ;
11-
12- Assert . Empty ( dotnet ) ;
13- Assert . Equal ( [ "--foo" , "bar" ] , app ) ;
14- }
15-
16- [ Fact ]
17- public void Split_with_separator_routes_dotnet_and_app_args ( )
18- {
19- var ( dotnet , app ) = GoArgs . Split ( [ "-c" , "Release" , "--" , "arg1" , "arg2" ] ) ;
20-
21- Assert . Equal ( [ "-c" , "Release" ] , dotnet ) ;
22- Assert . Equal ( [ "arg1" , "arg2" ] , app ) ;
23- }
24-
25- [ Fact ]
26- public void Split_with_trailing_separator_leaves_app_args_empty ( )
27- {
28- var ( dotnet , app ) = GoArgs . Split ( [ "-c" , "Release" , "--" ] ) ;
29-
30- Assert . Equal ( [ "-c" , "Release" ] , dotnet ) ;
31- Assert . Empty ( app ) ;
32- }
33-
34- [ Fact ]
35- public void Split_with_leading_separator_leaves_dotnet_args_empty ( )
36- {
37- var ( dotnet , app ) = GoArgs . Split ( [ "--" , "arg1" ] ) ;
38-
39- Assert . Empty ( dotnet ) ;
40- Assert . Equal ( [ "arg1" ] , app ) ;
41- }
42-
437 [ Fact ]
448 public void ApplyPublishMode_adds_r2r_properties_when_enabled ( )
459 {
@@ -57,28 +21,19 @@ public void ApplyPublishMode_leaves_args_unchanged_when_disabled()
5721 }
5822
5923 [ Fact ]
60- public void ApplyDefaultVerbosity_appends_quiet_when_missing ( )
61- {
62- Assert . Equal ( [ "-v:q" ] , GoArgs . ApplyDefaultVerbosity ( [ ] ) ) ;
63- Assert . Equal ( [ "-c" , "Release" , "-v:q" ] , GoArgs . ApplyDefaultVerbosity ( [ "-c" , "Release" ] ) ) ;
64- }
65-
66- [ Fact ]
67- public void ApplyDefaultVerbosity_leaves_args_unchanged_when_verbosity_present ( )
24+ public void ApplyVerbosity_always_appends_quiet ( )
6825 {
69- Assert . Equal ( [ "-v:q" ] , GoArgs . ApplyDefaultVerbosity ( [ "-v:q" ] ) ) ;
70- Assert . Equal ( [ "-v" , "q" ] , GoArgs . ApplyDefaultVerbosity ( [ "-v" , "q" ] ) ) ;
71- Assert . Equal ( [ "--verbosity" , "quiet" ] , GoArgs . ApplyDefaultVerbosity ( [ "--verbosity" , "quiet" ] ) ) ;
72- Assert . Equal ( [ "--verbosity:diag" ] , GoArgs . ApplyDefaultVerbosity ( [ "--verbosity:diag" ] ) ) ;
73- Assert . Equal ( [ "/v:q" ] , GoArgs . ApplyDefaultVerbosity ( [ "/v:q" ] ) ) ;
26+ Assert . Equal ( [ "-v:quiet" ] , GoArgs . ApplyVerbosity ( [ ] ) ) ;
27+ Assert . Equal ( [ "/p:PublishAot=false" , "/p:PublishReadyToRun=true" , "-v:quiet" ] ,
28+ GoArgs . ApplyVerbosity ( GoArgs . ApplyPublishMode ( [ ] , readyToRun : true ) ) ) ;
7429 }
7530
7631 [ Fact ]
7732 public void Normalize_maps_go_prefixed_switches_to_bare_forms ( )
7833 {
79- var normalized = GoArgs . Normalize ( [ "--go-debug" , "--go-r2r" , "owner/repo" , "--" , " apparg"] ) ;
34+ var normalized = GoArgs . Normalize ( [ "--go-debug" , "--go-r2r" , "owner/repo" , "apparg" ] ) ;
8035
81- Assert . Equal ( [ "--debug" , "--r2r" , "owner/repo" , "--" , " apparg"] , normalized ) ;
36+ Assert . Equal ( [ "--debug" , "--r2r" , "owner/repo" , "apparg" ] , normalized ) ;
8237 }
8338
8439 [ Fact ]
@@ -105,42 +60,34 @@ public void Normalize_empty_and_null()
10560 }
10661
10762 [ Fact ]
108- public void PrepareCafArgs_strips_dotnet_args_and_separator_for_default_command ( )
63+ public void PrepareCafArgs_forwards_all_trailing_tokens_as_app_args ( )
10964 {
110- var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "/p:MyProp=true" , "--" , " arg1", "arg2" ] ) ;
65+ var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "/p:MyProp=true" , "arg1" , "arg2" ] ) ;
11166
11267 Assert . Equal ( [ "app.cs" ] , caf ) ;
113- Assert . Equal ( [ "/p:MyProp=true" , "--" , "arg1" , "arg2" ] , GoArgs . ForwardArgs ) ;
114-
115- var ( dotnet , app ) = GoArgs . Split ( GoArgs . ForwardArgs ) ;
116- Assert . Equal ( [ "/p:MyProp=true" ] , dotnet ) ;
117- Assert . Equal ( [ "arg1" , "arg2" ] , app ) ;
68+ Assert . Equal ( [ "/p:MyProp=true" , "arg1" , "arg2" ] , GoArgs . ForwardArgs ) ;
11869 }
11970
12071 [ Fact ]
121- public void PrepareCafArgs_strips_msbuild_verbosity_before_separator ( )
72+ public void PrepareCafArgs_forwards_verbosity_tokens_as_app_args ( )
12273 {
123- var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "/v:q " , "-- " , "hello" , "world" ] ) ;
74+ var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "-v " , "n " , "hello" , "world" ] ) ;
12475
12576 Assert . Equal ( [ "app.cs" ] , caf ) ;
126- Assert . Equal ( [ "/v:q" , "--" , "hello" , "world" ] , GoArgs . ForwardArgs ) ;
127-
128- var ( dotnet , app ) = GoArgs . Split ( GoArgs . ForwardArgs ) ;
129- Assert . Equal ( [ "/v:q" ] , dotnet ) ;
130- Assert . Equal ( [ "hello" , "world" ] , app ) ;
77+ Assert . Equal ( [ "-v" , "n" , "hello" , "world" ] , GoArgs . ForwardArgs ) ;
13178 }
13279
13380 [ Fact ]
13481 public void PrepareCafArgs_keeps_go_flags_and_forwards_rest_for_dev ( )
13582 {
136- var caf = GoArgs . PrepareCafArgs ( [ "dev" , "app.cs" , "--r2r" , "/p:Configuration=Release " , "--" , "apparg "] ) ;
83+ var caf = GoArgs . PrepareCafArgs ( [ "dev" , "app.cs" , "--r2r" , "apparg " , "/p:x=1 " ] ) ;
13784
13885 Assert . Equal ( [ "dev" , "app.cs" , "--r2r" ] , caf ) ;
139- Assert . Equal ( [ "/p:Configuration=Release " , "--" , "apparg "] , GoArgs . ForwardArgs ) ;
86+ Assert . Equal ( [ "apparg " , "/p:x=1 " ] , GoArgs . ForwardArgs ) ;
14087 }
14188
14289 [ Fact ]
143- public void PrepareCafArgs_forwards_positional_args_when_no_separator ( )
90+ public void PrepareCafArgs_forwards_positional_args_when_no_options ( )
14491 {
14592 GoArgs . PrepareCafArgs ( [ "app.cs" , "arg1" , "arg2" ] ) ;
14693
@@ -168,9 +115,35 @@ public void PrepareCafArgs_passes_help_through_unchanged()
168115 [ Fact ]
169116 public void PrepareCafArgs_maps_debug_flag_to_caf_option_name ( )
170117 {
171- var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "--debug" , "/p:x=1" , "--" , " apparg"] ) ;
118+ var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "--debug" , "apparg" ] ) ;
172119
173120 Assert . Equal ( [ "app.cs" , "--gdbg" ] , caf ) ;
174- Assert . Equal ( [ "/p:x=1" , "--" , "apparg" ] , GoArgs . ForwardArgs ) ;
121+ Assert . Equal ( [ "apparg" ] , GoArgs . ForwardArgs ) ;
122+ }
123+
124+ [ Fact ]
125+ public void PrepareCafArgs_does_not_split_on_double_dash ( )
126+ {
127+ // A bare "--" is no longer a dotnet/app separator; it is an app arg if present.
128+ var caf = GoArgs . PrepareCafArgs ( [ "app.cs" , "--" , "arg1" ] ) ;
129+
130+ Assert . Equal ( [ "app.cs" ] , caf ) ;
131+ Assert . Equal ( [ "--" , "arg1" ] , GoArgs . ForwardArgs ) ;
132+ }
133+
134+ [ Fact ]
135+ public void BuildDotnetArgs_default_is_quiet_without_r2r ( )
136+ {
137+ var dotnetArgs = GoArgs . ApplyVerbosity ( GoArgs . ApplyPublishMode ( [ ] , readyToRun : false ) ) ;
138+
139+ Assert . Equal ( [ "-v:quiet" ] , dotnetArgs ) ;
140+ }
141+
142+ [ Fact ]
143+ public void BuildDotnetArgs_with_r2r_is_quiet ( )
144+ {
145+ var dotnetArgs = GoArgs . ApplyVerbosity ( GoArgs . ApplyPublishMode ( [ ] , readyToRun : true ) ) ;
146+
147+ Assert . Equal ( [ "/p:PublishAot=false" , "/p:PublishReadyToRun=true" , "-v:quiet" ] , dotnetArgs ) ;
175148 }
176- }
149+ }
0 commit comments