@@ -25,47 +25,31 @@ fn simple_project() -> Project {
25
25
}
26
26
27
27
#[ cargo_test]
28
- fn no_output_on_stable ( ) {
28
+ fn output_on_stable ( ) {
29
29
if !is_nightly ( ) {
30
30
// -Zfuture-incompat-test requires nightly (permanently)
31
31
return ;
32
32
}
33
33
let p = simple_project ( ) ;
34
34
35
35
p. cargo ( "check" )
36
- // Even though rustc emits the report, cargo ignores it without -Z.
37
36
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
38
37
. with_stderr_contains ( FUTURE_OUTPUT )
39
- . with_stderr_does_not_contain ( "[..]cargo report[..]" )
38
+ . with_stderr_contains ( "[..]cargo report[..]" )
40
39
. run ( ) ;
41
40
}
42
41
42
+ // This feature is stable, and should not be gated
43
43
#[ cargo_test]
44
- fn gate_future_incompat_report ( ) {
44
+ fn no_gate_future_incompat_report ( ) {
45
45
let p = simple_project ( ) ;
46
46
47
47
p. cargo ( "build --future-incompat-report" )
48
- . with_stderr_contains ( "error: the `--future-incompat-report` flag is unstable[..]" )
49
- . with_status ( 101 )
50
- . run ( ) ;
51
-
52
- // Both `-Z future-incompat-report` and `-Z unstable-opts` are required
53
- p. cargo ( "build --future-incompat-report -Z future-incompat-report" )
54
- . masquerade_as_nightly_cargo ( )
55
- . with_stderr_contains ( "error: the `--future-incompat-report` flag is unstable[..]" )
56
- . with_status ( 101 )
57
- . run ( ) ;
58
-
59
- p. cargo ( "build --future-incompat-report -Z unstable-options" )
60
- . masquerade_as_nightly_cargo ( )
61
- . with_stderr_contains (
62
- "error: Usage of `--future-incompat-report` requires `-Z future-incompat-report`" ,
63
- )
64
- . with_status ( 101 )
48
+ . with_status ( 0 )
65
49
. run ( ) ;
66
50
67
51
p. cargo ( "report future-incompatibilities --id foo" )
68
- . with_stderr_contains ( "error: `cargo report` can only be used on the nightly channel " )
52
+ . with_stderr_contains ( "error: no reports are currently available " )
69
53
. with_status ( 101 )
70
54
. run ( ) ;
71
55
}
@@ -83,8 +67,7 @@ fn test_zero_future_incompat() {
83
67
. build ( ) ;
84
68
85
69
// No note if --future-incompat-report is not specified.
86
- p. cargo ( "build -Z future-incompat-report" )
87
- . masquerade_as_nightly_cargo ( )
70
+ p. cargo ( "build" )
88
71
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
89
72
. with_stderr (
90
73
"\
@@ -94,8 +77,7 @@ fn test_zero_future_incompat() {
94
77
)
95
78
. run ( ) ;
96
79
97
- p. cargo ( "build --future-incompat-report -Z unstable-options -Z future-incompat-report" )
98
- . masquerade_as_nightly_cargo ( )
80
+ p. cargo ( "build --future-incompat-report" )
99
81
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
100
82
. with_stderr (
101
83
"\
@@ -117,8 +99,7 @@ fn test_single_crate() {
117
99
118
100
for command in & [ "build" , "check" , "rustc" , "test" ] {
119
101
let check_has_future_compat = || {
120
- p. cargo ( command) . arg ( "-Zfuture-incompat-report" )
121
- . masquerade_as_nightly_cargo ( )
102
+ p. cargo ( command)
122
103
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
123
104
. with_stderr_contains ( FUTURE_OUTPUT )
124
105
. with_stderr_contains ( "warning: the following packages contain code that will be rejected by a future version of Rust: foo v0.0.0 [..]" )
@@ -147,17 +128,14 @@ frequency = 'never'
147
128
" ,
148
129
) ;
149
130
p. cargo ( command)
150
- . arg ( "-Zfuture-incompat-report" )
151
- . masquerade_as_nightly_cargo ( )
152
131
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
153
132
. with_stderr_contains ( FUTURE_OUTPUT )
154
133
. with_stderr_does_not_contain ( "[..]rejected[..]" )
155
134
. with_stderr_does_not_contain ( "[..]incompatibility[..]" )
156
135
. run ( ) ;
157
136
158
137
// Check that passing `--future-incompat-report` overrides `frequency = 'never'`
159
- p. cargo ( command) . arg ( "-Zfuture-incompat-report" ) . arg ( "-Zunstable-options" ) . arg ( "--future-incompat-report" )
160
- . masquerade_as_nightly_cargo ( )
138
+ p. cargo ( command) . arg ( "--future-incompat-report" )
161
139
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
162
140
. with_stderr_contains ( FUTURE_OUTPUT )
163
141
. with_stderr_contains ( "warning: the following packages contain code that will be rejected by a future version of Rust: foo v0.0.0 [..]" )
@@ -197,8 +175,7 @@ fn test_multi_crate() {
197
175
. build ( ) ;
198
176
199
177
for command in & [ "build" , "check" , "rustc" , "test" ] {
200
- p. cargo ( command) . arg ( "-Zfuture-incompat-report" )
201
- . masquerade_as_nightly_cargo ( )
178
+ p. cargo ( command)
202
179
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
203
180
. with_stderr_does_not_contain ( FUTURE_OUTPUT )
204
181
. with_stderr_contains ( "warning: the following packages contain code that will be rejected by a future version of Rust: first-dep v0.0.1, second-dep v0.0.2" )
@@ -209,23 +186,20 @@ fn test_multi_crate() {
209
186
. with_stderr_does_not_contain ( "[..]-p[..]" )
210
187
. run ( ) ;
211
188
212
- p. cargo ( command) . arg ( "-Zunstable-options" ) . arg ( "-Zfuture-incompat-report" ) . arg ( "--future-incompat-report" )
213
- . masquerade_as_nightly_cargo ( )
189
+ p. cargo ( command) . arg ( "--future-incompat-report" )
214
190
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
215
191
. with_stderr_contains ( "warning: the following packages contain code that will be rejected by a future version of Rust: first-dep v0.0.1, second-dep v0.0.2" )
216
192
. with_stderr_contains ( " - first-dep:0.0.1" )
217
193
. with_stderr_contains ( " - second-dep:0.0.2" )
218
194
. run ( ) ;
219
195
220
- p. cargo ( "report future-incompatibilities" ) . arg ( "--package" ) . arg ( "first-dep:0.0.1" ) . arg ( "-Zunstable-options" ) . arg ( "-Zfuture-incompat-report" )
221
- . masquerade_as_nightly_cargo ( )
196
+ p. cargo ( "report future-incompatibilities" ) . arg ( "--package" ) . arg ( "first-dep:0.0.1" )
222
197
. with_stdout_contains ( "The package `first-dep v0.0.1` currently triggers the following future incompatibility lints:" )
223
198
. with_stdout_contains ( FUTURE_OUTPUT )
224
199
. with_stdout_does_not_contain ( "[..]second-dep-0.0.2/src[..]" )
225
200
. run ( ) ;
226
201
227
- p. cargo ( "report future-incompatibilities" ) . arg ( "--package" ) . arg ( "second-dep:0.0.2" ) . arg ( "-Zunstable-options" ) . arg ( "-Zfuture-incompat-report" )
228
- . masquerade_as_nightly_cargo ( )
202
+ p. cargo ( "report future-incompatibilities" ) . arg ( "--package" ) . arg ( "second-dep:0.0.2" )
229
203
. with_stdout_contains ( "The package `second-dep v0.0.2` currently triggers the following future incompatibility lints:" )
230
204
. with_stdout_contains ( FUTURE_OUTPUT )
231
205
. with_stdout_does_not_contain ( "[..]first-dep-0.0.1/src[..]" )
@@ -234,9 +208,8 @@ fn test_multi_crate() {
234
208
235
209
// Test that passing the correct id via '--id' doesn't generate a warning message
236
210
let output = p
237
- . cargo ( "build -Z future-incompat-report " )
211
+ . cargo ( "build" )
238
212
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
239
- . masquerade_as_nightly_cargo ( )
240
213
. exec_with_output ( )
241
214
. unwrap ( ) ;
242
215
@@ -256,16 +229,14 @@ fn test_multi_crate() {
256
229
// Strip off the trailing '`' included in the output
257
230
let id: String = id. chars ( ) . take_while ( |c| * c != '`' ) . collect ( ) ;
258
231
259
- p. cargo ( & format ! ( "report future-incompatibilities -Z future-incompat-report --id {}" , id) )
260
- . masquerade_as_nightly_cargo ( )
232
+ p. cargo ( & format ! ( "report future-incompatibilities --id {}" , id) )
261
233
. with_stdout_contains ( "The package `first-dep v0.0.1` currently triggers the following future incompatibility lints:" )
262
234
. with_stdout_contains ( "The package `second-dep v0.0.2` currently triggers the following future incompatibility lints:" )
263
235
. run ( ) ;
264
236
265
237
// Test without --id, and also the full output of the report.
266
238
let output = p
267
- . cargo ( "report future-incompat -Z future-incompat-report" )
268
- . masquerade_as_nightly_cargo ( )
239
+ . cargo ( "report future-incompat" )
269
240
. exec_with_output ( )
270
241
. unwrap ( ) ;
271
242
let output = std:: str:: from_utf8 ( & output. stdout ) . unwrap ( ) ;
@@ -305,17 +276,17 @@ fn color() {
305
276
306
277
let p = simple_project ( ) ;
307
278
308
- p. cargo ( "check -Zfuture-incompat-report " )
279
+ p. cargo ( "check" )
309
280
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
310
281
. masquerade_as_nightly_cargo ( )
311
282
. run ( ) ;
312
283
313
- p. cargo ( "report future-incompatibilities -Z future-incompat-report " )
284
+ p. cargo ( "report future-incompatibilities" )
314
285
. masquerade_as_nightly_cargo ( )
315
286
. with_stdout_does_not_contain ( "[..]\x1b [[..]" )
316
287
. run ( ) ;
317
288
318
- p. cargo ( "report future-incompatibilities -Z future-incompat-report " )
289
+ p. cargo ( "report future-incompatibilities" )
319
290
. masquerade_as_nightly_cargo ( )
320
291
. env ( "CARGO_TERM_COLOR" , "always" )
321
292
. with_stdout_contains ( "[..]\x1b [[..]" )
@@ -331,24 +302,24 @@ fn bad_ids() {
331
302
332
303
let p = simple_project ( ) ;
333
304
334
- p. cargo ( "report future-incompatibilities -Z future-incompat-report - -id 1" )
305
+ p. cargo ( "report future-incompatibilities --id 1" )
335
306
. masquerade_as_nightly_cargo ( )
336
307
. with_status ( 101 )
337
308
. with_stderr ( "error: no reports are currently available" )
338
309
. run ( ) ;
339
310
340
- p. cargo ( "check -Zfuture-incompat-report " )
311
+ p. cargo ( "check" )
341
312
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
342
313
. masquerade_as_nightly_cargo ( )
343
314
. run ( ) ;
344
315
345
- p. cargo ( "report future-incompatibilities -Z future-incompat-report - -id foo" )
316
+ p. cargo ( "report future-incompatibilities --id foo" )
346
317
. masquerade_as_nightly_cargo ( )
347
318
. with_status ( 1 )
348
319
. with_stderr ( "error: Invalid value: could not parse `foo` as a number" )
349
320
. run ( ) ;
350
321
351
- p. cargo ( "report future-incompatibilities -Z future-incompat-report - -id 7" )
322
+ p. cargo ( "report future-incompatibilities --id 7" )
352
323
. masquerade_as_nightly_cargo ( )
353
324
. with_status ( 101 )
354
325
. with_stderr (
@@ -426,7 +397,7 @@ big_update v1.0.0 has the following newer versions available: 2.0.0
426
397
with_updates v1.0.0 has the following newer versions available: 1.0.1, 1.0.2, 3.0.1
427
398
" ;
428
399
429
- p. cargo ( "check -Zfuture-incompat-report -Zunstable-options - -future-incompat-report" )
400
+ p. cargo ( "check --future-incompat-report" )
430
401
. masquerade_as_nightly_cargo ( )
431
402
. env ( "RUSTFLAGS" , "-Zfuture-incompat-test" )
432
403
. with_stderr_contains ( update_message)
0 commit comments