aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-09-28 14:04:52 +0200
committerPierre-Marie Pédrot2020-09-28 14:04:52 +0200
commitb9f385cb43de4c463e649f8f6e33f32288e88a6c (patch)
tree56d34e30c27d90e32463bb613d97549bc515e143
parent9c2228ff011dc6188b70084fa1e1a5158affcf24 (diff)
parent2b258e90df02448341c051ac21b84cf1c7c20428 (diff)
Merge PR #13053: [lib] make canonical_path_name always absolute (fix #13031)
Ack-by: SkySkimmer Reviewed-by: ppedrot
-rw-r--r--clib/cUnix.ml2
-rwxr-xr-xtest-suite/misc/coq_makefile_destination_of.sh26
2 files changed, 27 insertions, 1 deletions
diff --git a/clib/cUnix.ml b/clib/cUnix.ml
index 75ed73540e..3a10e33369 100644
--- a/clib/cUnix.ml
+++ b/clib/cUnix.ml
@@ -69,7 +69,7 @@ let canonical_path_name p =
p'
with Sys_error _ ->
(* We give up to find a canonical name and just simplify it... *)
- strip_path p
+ current ^ dirsep ^ strip_path p
let make_suffix name suffix =
if Filename.check_suffix name suffix then name else (name ^ suffix)
diff --git a/test-suite/misc/coq_makefile_destination_of.sh b/test-suite/misc/coq_makefile_destination_of.sh
new file mode 100755
index 0000000000..fc8e089ccf
--- /dev/null
+++ b/test-suite/misc/coq_makefile_destination_of.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+export COQBIN=$BIN
+export PATH=$COQBIN:$PATH
+
+TMP=`mktemp -d`
+cd $TMP
+
+function assert_eq() {
+ if [ "$1" != "$2" ]; then
+ echo "coq_makefile generates destination" $1 "!=" $2
+ cd /
+ rm -rf $TMP
+ exit 1
+ fi
+}
+
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+mkdir src
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+mkdir -p src/Y/Z
+touch src/Y/Z/Test.v
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+cd /
+rm -rf $TMP
+exit 0