@@ -1174,135 +1174,30 @@ fn hard_equality() {
1174
1174
}
1175
1175
1176
1176
#[ test]
1177
- fn slow_case ( ) {
1178
- let reg = registry ( vec ! [
1179
- pkg!( ( "-a-sys" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1180
- pkg!( ( "-a-sys" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1181
- pkg!( ( "-a-sys" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1182
- pkg!( ( "-a-sys" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1183
- pkg!( ( "-a-sys" , "0.0.4" ) ) ,
1184
- pkg!( ( "-a-sys" , "0.0.5" ) ) ,
1185
- pkg!( ( "-a-sys" , "0.0.6" ) ) ,
1186
- pkg!( ( "-a-sys" , "0.0.7" ) ) ,
1187
- pkg!( ( "-a-sys" , "0.0.8" ) ) ,
1188
- pkg!( ( "-a-sys" , "0.0.9" ) => [ dep( "bad" ) , ] ) ,
1189
- pkg!( ( "-a-sys" , "0.0.10" ) ) ,
1190
- pkg!( ( "-a-sys" , "0.0.11" ) ) ,
1191
- pkg!( ( "-a-sys" , "0.1.0" ) ) ,
1192
- pkg!( ( "-a-sys" , "0.1.1" ) ) ,
1193
- pkg!( ( "-a-sys" , "0.1.2" ) ) ,
1194
- pkg!( ( "-a-sys" , "0.1.3" ) ) ,
1195
- pkg!( ( "-a-sys" , "0.2.0" ) ) ,
1196
- pkg!( ( "-a-sys" , "0.2.1" ) ) ,
1197
- pkg!( ( "A_-sys" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1198
- pkg!( ( "A_-sys" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1199
- pkg!( ( "A_-sys" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1200
- pkg!( ( "A_-sys" , "0.0.3" ) =>[ dep( "bad" ) , ] ) ,
1201
- pkg!( ( "A_-sys" , "0.0.4" ) => [ dep( "bad" ) , ] ) ,
1202
- pkg!( ( "A_-sys" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1203
- pkg!( ( "A_-sys" , "0.0.6" ) => [ dep( "bad" ) , ] ) ,
1204
- pkg!( ( "A_-sys" , "0.0.7" ) => [ dep( "bad" ) , ] ) ,
1205
- pkg!( ( "A_-sys" , "0.1.0" ) => [ dep( "bad" ) , ] ) ,
1206
- pkg!( ( "A_-sys" , "0.1.1" ) => [ dep( "bad" ) , ] ) ,
1207
- pkg!( ( "A_-sys" , "0.1.2" ) ) ,
1208
- pkg!( ( "A_-sys" , "0.1.3" ) ) ,
1209
- pkg!( ( "A_-sys" , "0.1.4" ) ) ,
1210
- pkg!( ( "A_-sys" , "0.1.5" ) ) ,
1211
- pkg!( ( "A_-sys" , "0.1.6" ) ) ,
1212
- pkg!( ( "A_-sys" , "0.2.0" ) ) ,
1213
- pkg!( ( "A_-sys" , "0.2.1" ) ) ,
1214
- pkg!( ( "A_-sys" , "0.2.2" ) ) ,
1215
- pkg!( ( "A_-sys" , "0.3.0" ) ) ,
1216
- pkg!( ( "A_-sys" , "1.0.0" ) ) ,
1217
- pkg!( ( "__-sys" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1218
- pkg!( ( "__-sys" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1219
- pkg!( ( "__-sys" , "0.0.2" ) ) ,
1220
- pkg!( ( "__-sys" , "0.0.3" ) ) ,
1221
- pkg!( ( "__-sys" , "0.0.4" ) => [ dep_req( "-a-sys" , ">= 0.0.1, <= 0.0.8" ) , ] ) ,
1222
- pkg!( ( "__-sys" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1223
- pkg!( ( "a-sys" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1224
- pkg!( ( "a-sys" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1225
- pkg!( ( "a-sys" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1226
- pkg!( ( "a-sys" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1227
- pkg!( ( "a-sys" , "0.0.4" ) ) ,
1228
- pkg!( ( "a-sys" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1229
- pkg!( ( "a-sys" , "0.0.6" ) ) ,
1230
- pkg!( ( "a-sys" , "0.1.0" ) => [ dep( "bad" ) , ] ) ,
1231
- pkg!( ( "a-sys" , "0.1.1" ) ) ,
1232
- pkg!( ( "a-sys" , "0.1.2" ) ) ,
1233
- pkg!( ( "a-sys" , "0.1.3" ) ) ,
1234
- pkg!( ( "a-sys" , "0.1.4" ) ) ,
1235
- pkg!( ( "a-sys" , "0.1.5" ) ) ,
1236
- pkg!( ( "c-sys" , "0.0.0" ) ) ,
1237
- pkg!( ( "c-sys" , "0.0.1" ) ) ,
1238
- pkg!( ( "c-sys" , "0.0.2" ) ) ,
1239
- pkg!( ( "c-sys" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1240
- pkg!( ( "c-sys" , "0.0.4" ) ) ,
1241
- pkg!( ( "c-sys" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1242
- pkg!( ( "c-sys" , "0.0.6" ) ) ,
1243
- pkg!( ( "c-sys" , "0.0.7" ) => [ dep( "bad" ) , ] ) ,
1244
- pkg!( ( "c-sys" , "0.0.8" ) => [ dep( "bad" ) , ] ) ,
1245
- pkg!( ( "c-sys" , "0.0.9" ) => [ dep( "bad" ) , ] ) ,
1246
- pkg!( ( "c-sys" , "0.1.0" ) ) ,
1247
- pkg!( ( "c-sys" , "1.0.0" ) => [ dep( "bad" ) , ] ) ,
1248
- pkg!( ( "c-sys" , "1.0.1" ) ) ,
1249
- pkg!( ( "c-sys" , "1.0.2" ) => [ dep( "bad" ) , ] ) ,
1250
- pkg!( ( "c-sys" , "1.0.3" ) => [ dep( "bad" ) , ] ) ,
1251
- pkg!( ( "d-sys" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1252
- pkg!( ( "d-sys" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1253
- pkg!( ( "d-sys" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1254
- pkg!( ( "d-sys" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1255
- pkg!( ( "d-sys" , "0.0.4" ) => [ dep( "bad" ) , ] ) ,
1256
- pkg!( ( "d-sys" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1257
- pkg!( ( "d-sys" , "0.1.0" ) => [ dep( "bad" ) , ] ) ,
1258
- pkg!( ( "d-sys" , "0.1.1" ) => [ dep( "bad" ) , ] ) ,
1259
- pkg!( ( "d-sys" , "0.1.2" ) => [ dep_req( "__-sys" , "<= 0.0.4" ) , ] ) ,
1260
- pkg!( ( "d-sys" , "0.2.0" ) => [ dep_req( "__-sys" , "<= 0.0.4" ) , ] ) ,
1261
- pkg!( ( "f" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1262
- pkg!( ( "f" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1263
- pkg!( ( "f" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1264
- pkg!( ( "f" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1265
- pkg!( ( "f" , "0.0.4" ) => [ dep( "bad" ) , ] ) ,
1266
- pkg!( ( "f" , "0.0.5" ) => [ dep( "bad" ) , ] ) ,
1267
- pkg!( ( "f" , "0.0.6" ) => [ dep( "bad" ) , ] ) ,
1268
- pkg!( ( "f" , "0.0.7" ) => [ dep( "bad" ) , ] ) ,
1269
- pkg!( ( "f" , "0.0.8" ) => [ dep( "bad" ) , ] ) ,
1270
- pkg!( ( "f" , "0.0.9" ) => [ dep( "bad" ) , ] ) ,
1271
- pkg!( ( "f" , "0.0.10" ) => [ dep( "bad" ) , ] ) ,
1272
- pkg!( ( "f" , "0.0.11" ) => [ dep( "bad" ) , ] ) ,
1273
- pkg!( ( "f" , "0.1.0" ) => [ dep( "bad" ) , ] ) ,
1274
- pkg!( ( "f" , "0.1.1" ) => [ dep( "bad" ) , ] ) ,
1275
- pkg!( ( "f" , "0.1.2" ) => [ dep( "bad" ) , ] ) ,
1276
- pkg!( ( "f" , "1.0.0" ) => [ dep( "bad" ) , ] ) ,
1277
- pkg!( ( "f" , "1.0.1" ) => [ dep_req( "a-sys" , "= 0.1.5" ) , ] ) ,
1278
- pkg!( ( "f" , "1.0.2" ) => [ dep_req( "c-sys" , "= 0.0.5" ) , ] ) ,
1279
- pkg!( ( "fa" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1280
- pkg!( ( "fa" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1281
- pkg!( ( "fa" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1282
- pkg!( ( "fa" , "0.0.3" ) => [ dep( "bad" ) , ] ) ,
1283
- pkg!( ( "fa" , "0.0.4" ) => [ dep( "bad" ) , ] ) ,
1284
- pkg!( ( "fa" , "0.1.0" ) => [ dep( "bad" ) , ] ) ,
1285
- pkg!( ( "fa" , "0.2.0" ) => [ dep( "bad" ) , ] ) ,
1286
- pkg!( ( "fa" , "0.2.1" ) => [ dep_req( "c-sys" , "<= 0.0.4" ) , ] ) ,
1287
- pkg!( ( "fa" , "0.2.2" ) => [ dep_req( "c-sys" , ">= 0.0.5, <= 0.1.0" ) , ] ) ,
1288
- pkg!( ( "s" , "0.0.0" ) => [ dep( "bad" ) , ] ) ,
1289
- pkg!( ( "s" , "0.0.1" ) => [ dep( "bad" ) , ] ) ,
1290
- pkg!( ( "s" , "0.0.2" ) => [ dep( "bad" ) , ] ) ,
1291
- pkg!( ( "s" , "0.0.3" ) => [ dep_req( "__-sys" , "= 0.0.5" ) , ] ) ,
1292
- pkg!( ( "s" , "0.0.4" ) => [ dep( "bad" ) , ] ) ,
1293
- pkg!( ( "s" , "0.0.5" ) => [ dep_req( "d-sys" , "<= 0.0.0" ) , ] ) ,
1294
- pkg!( ( "s" , "0.1.0" ) => [ dep( "f" ) , ] ) ,
1295
- pkg!( ( "s" , "0.1.1" ) => [ dep_req( "-a-sys" , ">= 0.0.10, <= 0.0.11" ) , dep_req( "__-sys" , "= 0.0.4" ) , ] ) ,
1296
- pkg!( ( "s" , "0.1.2" ) => [ dep( "bad" ) , ] ) ,
1297
- pkg!( ( "s" , "0.1.3" ) => [ dep( "bad" ) , ] ) ,
1298
- pkg!( ( "s" , "0.1.4" ) => [ dep_req( "A_-sys" , "= 0.3.0" ) , ] ) ,
1299
- pkg!( ( "sA" , "1.0.1" ) => [
1300
- dep_req( "A_-sys" , ">= 0.1.1, <= 0.2.2" ) ,
1301
- dep_req( "a-sys" , ">= 0.0.4, <= 0.1.4" ) ,
1302
- dep_req( "d-sys" , ">= 0.0.1" ) ,
1303
- dep( "fa" ) ,
1304
- dep( "s" ) ,
1305
- ] ) ,
1306
- ] ) ;
1307
- let _ = resolve ( & pkg_id ( "root" ) , vec ! [ dep( "sA" ) ] , & reg) ;
1177
+ fn large_conflict_cache ( ) {
1178
+ let mut input = vec ! [
1179
+ pkg!( ( "last" , "0.0.0" ) => [ dep( "bad" ) ] ) // just to make sure last is less constrained
1180
+ ] ;
1181
+ let mut root_deps = vec ! [ dep( "last" ) ] ;
1182
+ const NUM_VERSIONS : u8 = 3 ;
1183
+ for name in 0 ..=NUM_VERSIONS {
1184
+ // a large number of conflicts can easily be generated by a sys crate.
1185
+ let sys_name = format ! ( "{}-sys" , ( b'a' + name) as char ) ;
1186
+ let in_len = input. len ( ) ;
1187
+ input. push ( pkg ! ( ( "last" , format!( "{}.0.0" , in_len) ) => [ dep_req( & sys_name, "=0.0.0" ) ] ) ) ;
1188
+ root_deps. push ( dep_req ( & sys_name, ">= 0.0.1" ) ) ;
1189
+
1190
+ // a large number of conflicts can also easily be generated by a major release version.
1191
+ let plane_name = format ! ( "{}" , ( b'a' + name) as char ) ;
1192
+ let in_len = input. len ( ) ;
1193
+ input. push ( pkg ! ( ( "last" , format!( "{}.0.0" , in_len) ) => [ dep_req( & plane_name, "=1.0.0" ) ] ) ) ;
1194
+ root_deps. push ( dep_req ( & plane_name, ">= 1.0.1" ) ) ;
1195
+
1196
+ for i in 0 ..=NUM_VERSIONS {
1197
+ input. push ( pkg ! ( ( & sys_name, format!( "{}.0.0" , i) ) ) ) ;
1198
+ input. push ( pkg ! ( ( & plane_name, format!( "1.0.{}" , i) ) ) ) ;
1199
+ }
1200
+ }
1201
+ let reg = registry ( input) ;
1202
+ let _ = resolve ( & pkg_id ( "root" ) , root_deps, & reg) ;
1308
1203
}
0 commit comments