Skip to content

Commit 165a4cc

Browse files
committed
Add three prefv test cases
1 parent 3a6c1be commit 165a4cc

File tree

1 file changed

+74
-5
lines changed

1 file changed

+74
-5
lines changed

solve_bimodal_test.go

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,16 +388,85 @@ var bimodalFixtures = map[string]bimodalFixture{
388388
),
389389
},
390390
// 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+
},
393412
// Preferred version, as derived from a dep's lock, is attempted first, even
394413
// 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+
},
397441

398442
// Preferred versions can only work if the thing offering it has been
399443
// 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+
},
401470

402471
// Revision enters vqueue if a dep has a constraint on that revision
403472
// TODO

0 commit comments

Comments
 (0)