From 1b12b27e8cf4c7f93edea7001e191583a852db7c Mon Sep 17 00:00:00 2001 From: Ali Caglayan Date: Fri, 7 Nov 2025 13:17:34 +0000 Subject: [PATCH] test(pkg): incorrect dune resovled from PATH Signed-off-by: Ali Caglayan --- .../test-cases/pkg/local-dune-bin.t | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/blackbox-tests/test-cases/pkg/local-dune-bin.t diff --git a/test/blackbox-tests/test-cases/pkg/local-dune-bin.t b/test/blackbox-tests/test-cases/pkg/local-dune-bin.t new file mode 100644 index 00000000000..9dd0c749cd5 --- /dev/null +++ b/test/blackbox-tests/test-cases/pkg/local-dune-bin.t @@ -0,0 +1,46 @@ +The dune binary we resolve should be the current one we are running: + + $ . ./helpers.sh + + $ mkdir fake_dune + $ cat > fake_dune/dune < #!/usr/bin/env sh + > echo "Incorrect dune!" + > EOF + $ chmod +x fake_dune/dune + + $ REAL_DUNE=$(which dune) + + $ mkdir test && cd test + $ mkrepo + + $ mkpkg bar < depends: [ "dune" ] + > build: [ "echo" "$(which dune)" ] + > EOF + + $ solve_project < (lang dune 3.21) + > (package + > (name foo) + > (allow_empty) + > (depends bar)) + > EOF + Solution for dune.lock: + - bar.0.0.1 + + $ test() { + > dune build @pkg-install 2>&1 | sed "s|$REAL_DUNE|Correct dune!|" + > } + +Everything appears to build correctly. + + $ test + Correct dune! + +However if we put a different dune in PATH, the problems become apparent. + + $ export PATH="$PWD/../fake_dune:$PATH" + + $ test + Incorrect dune!