diff --git a/test/unit-tests/path.mlt b/test/unit-tests/path.mlt index 3f01e31b..9eb77b9c 100644 --- a/test/unit-tests/path.mlt +++ b/test/unit-tests/path.mlt @@ -284,3 +284,31 @@ Path.is_in_build_dir Path.build_dir [%%expect{| - : bool = false |}] + +Path.reach_for_running Path.build_dir ~from:Path.root +[%%expect{| +- : Stdune.Path.t = ./_build +|}] + +Path.(reach_for_running (relative build_dir "foo/baz") + ~from:(relative build_dir "foo/bar/baz")) +[%%expect{| +- : Stdune.Path.t = ../../baz +|}] + +Path.(reach_for_running (Path.absolute "/fake/path") + ~from:(relative build_dir "foo/bar/baz")) +[%%expect{| +- : Stdune.Path.t = /fake/path +|}] + +Path.(reach_for_running (relative build_dir "foo/baz") + ~from:(Path.absolute "/fake/path")) +[%%expect{| +Exception: Stdune__Exn.Code_error . +|}] + +Path.(reach_for_running (relative root "foo") ~from:(Path.relative root "foo")) +[%%expect{| +- : Stdune.Path.t = ./. +|}]