Skip to content

Commit 4bda5d7

Browse files
committed
reftest: add pin depends special case test
1 parent 0cb525c commit 4bda5d7

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

master_changes.md

+1
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ users)
170170
* Add double pinning test in case of opam/opam opam file [#6343 @rjbou]
171171
* Make sure `download.test` does not fail due to a checksum collision in the download cache [#6378 @kit-ty-kate]
172172
* Add a test showing the behaviour of `opam upgrade` with packages flagged with `avoid-version`/`deprecated` [#6273 @kit-ty-kate]
173+
* Add a test showing the behaviour when a pin depend is unpinned [#6380 @rjbou]
173174

174175
### Engine
175176

tests/reftests/pin.test

+91
Original file line numberDiff line numberDiff line change
@@ -944,3 +944,94 @@ name: "double"
944944
### opam pin -n double
945945
[NOTE] Package double does not exist in opam repositories registered in the current switch.
946946
double is now pinned to file://${BASEDIR}/double (version dev)
947+
### :C:c: pin depends and unpin dependency
948+
### opam switch create pin-depends --empty
949+
### <pin:dep1/dep1.opam>
950+
opam-version: "2.0"
951+
depends: [ "dep2" "dep3"]
952+
### <add-pin-depends.sh>
953+
basedir=`echo "$BASEDIR" | sed "s/\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/g"`
954+
cat >> dep1/dep1.opam << EOF
955+
pin-depends: [
956+
[ "dep2.2" "file://$basedir/dep2" ]
957+
[ "dep3.2" "file://$basedir/dep3" ]
958+
]
959+
EOF
960+
### sh add-pin-depends.sh
961+
### <pkg:dep2.1>
962+
opam-version: "2.0"
963+
### <pin:dep2/dep2.opam>
964+
opam-version: "2.0"
965+
### <pin:dep3/dep3.opam>
966+
opam-version: "2.0"
967+
### <pin:other/other.opam>
968+
opam-version: "2.0"
969+
### opam pin ./dep1
970+
[NOTE] Package dep1 does not exist in opam repositories registered in the current switch.
971+
The following additional pinnings are required by dep1.dev:
972+
- dep2.2 at file://${BASEDIR}/dep2
973+
- dep3.2 at file://${BASEDIR}/dep3
974+
Pin and install them? [Y/n] y
975+
[dep2.2] synchronised (no changes)
976+
dep2 is now pinned to file://${BASEDIR}/dep2 (version 2)
977+
[NOTE] Package dep3 does not exist in opam repositories registered in the current switch.
978+
[dep3.2] synchronised (no changes)
979+
dep3 is now pinned to file://${BASEDIR}/dep3 (version 2)
980+
dep1 is now pinned to file://${BASEDIR}/dep1 (version dev)
981+
982+
The following actions will be performed:
983+
=== install 3 packages
984+
- install dep1 dev (pinned)
985+
- install dep2 2 (pinned)
986+
- install dep3 2 (pinned)
987+
988+
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
989+
-> retrieved dep1.dev (file://${BASEDIR}/dep1)
990+
-> retrieved dep2.2 (file://${BASEDIR}/dep2)
991+
-> installed dep2.2
992+
-> retrieved dep3.2 (file://${BASEDIR}/dep3)
993+
-> installed dep3.2
994+
-> installed dep1.dev
995+
Done.
996+
### opam pin -s
997+
dep1
998+
dep2
999+
dep3
1000+
### opam unpin dep2
1001+
Ok, dep2 is no longer pinned to file://${BASEDIR}/dep2 (version 2)
1002+
The following actions will be performed:
1003+
=== downgrade 1 package
1004+
- downgrade dep2 2 to 1
1005+
=== recompile 1 package
1006+
- recompile dep1 dev (pinned) [uses dep2]
1007+
1008+
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
1009+
-> retrieved dep1.dev (no changes)
1010+
-> removed dep1.dev
1011+
-> removed dep2.2
1012+
-> installed dep2.1
1013+
-> installed dep1.dev
1014+
Done.
1015+
### opam pin ./dep1
1016+
[NOTE] Package dep1 is already pinned to file://${BASEDIR}/dep1 (version dev).
1017+
The following additional pinnings are required by dep1.dev:
1018+
- dep2.2 at file://${BASEDIR}/dep2
1019+
Pin and install them? [Y/n] y
1020+
[dep2.2] synchronised (no changes)
1021+
dep2 is now pinned to file://${BASEDIR}/dep2 (version 2)
1022+
dep1 is now pinned to file://${BASEDIR}/dep1 (version dev)
1023+
1024+
The following actions will be performed:
1025+
=== recompile 1 package
1026+
- recompile dep1 dev (pinned)
1027+
=== upgrade 1 package
1028+
- upgrade dep2 1 to 2 (pinned)
1029+
1030+
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
1031+
-> retrieved dep1.dev (no changes)
1032+
-> retrieved dep2.2 (file://${BASEDIR}/dep2)
1033+
-> removed dep1.dev
1034+
-> removed dep2.1
1035+
-> installed dep2.2
1036+
-> installed dep1.dev
1037+
Done.

0 commit comments

Comments
 (0)