@@ -152,7 +152,7 @@ fn rust_version_too_high() {
152
152
}
153
153
154
154
#[ cargo_test]
155
- fn rust_version_dependency_fails ( ) {
155
+ fn dependency_rust_version_newer_than_rustc ( ) {
156
156
Package :: new ( "bar" , "0.0.1" )
157
157
. rust_version ( "1.2345.0" )
158
158
. file ( "src/lib.rs" , "fn other_stuff() {}" )
@@ -189,6 +189,166 @@ fn rust_version_dependency_fails() {
189
189
p. cargo ( "check --ignore-rust-version" ) . run ( ) ;
190
190
}
191
191
192
+ #[ cargo_test]
193
+ fn dependency_rust_version_newer_than_package ( ) {
194
+ Package :: new ( "bar" , "1.6.0" )
195
+ . rust_version ( "1.65.0" )
196
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
197
+ . publish ( ) ;
198
+
199
+ let p = project ( )
200
+ . file (
201
+ "Cargo.toml" ,
202
+ r#"
203
+ [package]
204
+ name = "foo"
205
+ version = "0.0.1"
206
+ authors = []
207
+ rust-version = "1.60.0"
208
+ [dependencies]
209
+ bar = "1.0.0"
210
+ "# ,
211
+ )
212
+ . file ( "src/main.rs" , "fn main(){}" )
213
+ . build ( ) ;
214
+
215
+ p. cargo ( "check --ignore-rust-version" )
216
+ . with_stderr (
217
+ "\
218
+ [UPDATING] `dummy-registry` index
219
+ [DOWNLOADING] crates ...
220
+ [DOWNLOADED] bar v1.6.0 (registry `dummy-registry`)
221
+ [CHECKING] bar v1.6.0
222
+ [CHECKING] [..]
223
+ [FINISHED] [..]
224
+ " ,
225
+ )
226
+ . run ( ) ;
227
+ p. cargo ( "check" )
228
+ . with_stderr (
229
+ "\
230
+ [FINISHED] [..]
231
+ " ,
232
+ )
233
+ . run ( ) ;
234
+ }
235
+
236
+ #[ cargo_test]
237
+ fn dependency_rust_version_older_and_newer_than_package ( ) {
238
+ Package :: new ( "bar" , "1.5.0" )
239
+ . rust_version ( "1.55.0" )
240
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
241
+ . publish ( ) ;
242
+ Package :: new ( "bar" , "1.6.0" )
243
+ . rust_version ( "1.65.0" )
244
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
245
+ . publish ( ) ;
246
+
247
+ let p = project ( )
248
+ . file (
249
+ "Cargo.toml" ,
250
+ r#"
251
+ [package]
252
+ name = "foo"
253
+ version = "0.0.1"
254
+ authors = []
255
+ rust-version = "1.60.0"
256
+ [dependencies]
257
+ bar = "1.0.0"
258
+ "# ,
259
+ )
260
+ . file ( "src/main.rs" , "fn main(){}" )
261
+ . build ( ) ;
262
+
263
+ p. cargo ( "check --ignore-rust-version" )
264
+ . with_stderr (
265
+ "\
266
+ [UPDATING] `dummy-registry` index
267
+ [DOWNLOADING] crates ...
268
+ [DOWNLOADED] bar v1.6.0 (registry `dummy-registry`)
269
+ [CHECKING] bar v1.6.0
270
+ [CHECKING] [..]
271
+ [FINISHED] [..]
272
+ " ,
273
+ )
274
+ . run ( ) ;
275
+ p. cargo ( "check" )
276
+ . with_stderr (
277
+ "\
278
+ [FINISHED] [..]
279
+ " ,
280
+ )
281
+ . run ( ) ;
282
+ }
283
+
284
+ #[ cargo_test]
285
+ fn workspace_with_mixed_rust_version ( ) {
286
+ Package :: new ( "bar" , "1.4.0" )
287
+ . rust_version ( "1.45.0" )
288
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
289
+ . publish ( ) ;
290
+ Package :: new ( "bar" , "1.5.0" )
291
+ . rust_version ( "1.55.0" )
292
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
293
+ . publish ( ) ;
294
+ Package :: new ( "bar" , "1.6.0" )
295
+ . rust_version ( "1.65.0" )
296
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
297
+ . publish ( ) ;
298
+
299
+ let p = project ( )
300
+ . file (
301
+ "Cargo.toml" ,
302
+ r#"
303
+ [workspace]
304
+ members = ["lower"]
305
+
306
+ [package]
307
+ name = "higher"
308
+ version = "0.0.1"
309
+ authors = []
310
+ rust-version = "1.60.0"
311
+ [dependencies]
312
+ bar = "1.0.0"
313
+ "# ,
314
+ )
315
+ . file ( "src/main.rs" , "fn main() {}" )
316
+ . file (
317
+ "lower/Cargo.toml" ,
318
+ r#"
319
+ [package]
320
+ name = "lower"
321
+ version = "0.0.1"
322
+ authors = []
323
+ rust-version = "1.50.0"
324
+ [dependencies]
325
+ bar = "1.0.0"
326
+ "# ,
327
+ )
328
+ . file ( "lower/src/main.rs" , "fn main() {}" )
329
+ . build ( ) ;
330
+
331
+ p. cargo ( "check --ignore-rust-version" )
332
+ . with_stderr (
333
+ "\
334
+ [UPDATING] `dummy-registry` index
335
+ [DOWNLOADING] crates ...
336
+ [DOWNLOADED] bar v1.6.0 (registry `dummy-registry`)
337
+ [CHECKING] bar v1.6.0
338
+ [CHECKING] [..]
339
+ [FINISHED] [..]
340
+ " ,
341
+ )
342
+ . run ( ) ;
343
+ p. cargo ( "check" )
344
+ . with_stderr (
345
+ "\
346
+ [FINISHED] [..]
347
+ " ,
348
+ )
349
+ . run ( ) ;
350
+ }
351
+
192
352
#[ cargo_test]
193
353
fn rust_version_older_than_edition ( ) {
194
354
project ( )
0 commit comments