@@ -388,16 +388,85 @@ var bimodalFixtures = map[string]bimodalFixture{
388
388
),
389
389
},
390
390
// Preferred version, as derived from a dep's lock, is attempted first
391
- // TODO
392
-
391
+ "respect prefv, simple case" : {
392
+ ds : []depspec {
393
+ dsp (dsv ("root 0.0.0" ),
394
+ pkg ("root" , "a" )),
395
+ dsp (dsv ("a 1.0.0" ),
396
+ pkg ("a" , "b" )),
397
+ dsp (dsv ("b 1.0.0 foorev" ),
398
+ pkg ("b" )),
399
+ dsp (dsv ("b 2.0.0 barrev" ),
400
+ pkg ("b" )),
401
+ },
402
+ lm : map [string ]fixLock {
403
+ "a 1.0.0" : mklock (
404
+ "b 1.0.0 foorev" ,
405
+ ),
406
+ },
407
+ r : mkresults (
408
+ "a 1.0.0" ,
409
+ "b 1.0.0 foorev" ,
410
+ ),
411
+ },
393
412
// Preferred version, as derived from a dep's lock, is attempted first, even
394
413
// if the root also has a direct dep on it (root doesn't need to use
395
- // preferreds, because it has direct control)
396
- // TODO
414
+ // preferreds, because it has direct control AND because the root lock
415
+ // already supercedes dep lock "preferences")
416
+ "respect dep prefv with root import" : {
417
+ ds : []depspec {
418
+ dsp (dsv ("root 0.0.0" ),
419
+ pkg ("root" , "a" , "b" )),
420
+ dsp (dsv ("a 1.0.0" ),
421
+ pkg ("a" , "b" )),
422
+ //dsp(dsv("a 1.0.1"),
423
+ //pkg("a", "b")),
424
+ //dsp(dsv("a 1.1.0"),
425
+ //pkg("a", "b")),
426
+ dsp (dsv ("b 1.0.0 foorev" ),
427
+ pkg ("b" )),
428
+ dsp (dsv ("b 2.0.0 barrev" ),
429
+ pkg ("b" )),
430
+ },
431
+ lm : map [string ]fixLock {
432
+ "a 1.0.0" : mklock (
433
+ "b 1.0.0 foorev" ,
434
+ ),
435
+ },
436
+ r : mkresults (
437
+ "a 1.0.0" ,
438
+ "b 1.0.0 foorev" ,
439
+ ),
440
+ },
397
441
398
442
// Preferred versions can only work if the thing offering it has been
399
443
// selected, or at least marked in the unselected queue
400
- // TODO
444
+ "prefv only works if depper is selected" : {
445
+ ds : []depspec {
446
+ dsp (dsv ("root 0.0.0" ),
447
+ pkg ("root" , "a" , "b" )),
448
+ // Three atoms for a, which will mean it gets visited after b
449
+ dsp (dsv ("a 1.0.0" ),
450
+ pkg ("a" , "b" )),
451
+ dsp (dsv ("a 1.0.1" ),
452
+ pkg ("a" , "b" )),
453
+ dsp (dsv ("a 1.1.0" ),
454
+ pkg ("a" , "b" )),
455
+ dsp (dsv ("b 1.0.0 foorev" ),
456
+ pkg ("b" )),
457
+ dsp (dsv ("b 2.0.0 barrev" ),
458
+ pkg ("b" )),
459
+ },
460
+ lm : map [string ]fixLock {
461
+ "a 1.0.0" : mklock (
462
+ "b 1.0.0 foorev" ,
463
+ ),
464
+ },
465
+ r : mkresults (
466
+ "a 1.1.0" ,
467
+ "b 2.0.0 barrev" ,
468
+ ),
469
+ },
401
470
402
471
// Revision enters vqueue if a dep has a constraint on that revision
403
472
// TODO
0 commit comments