aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorPaul Eggert2017-09-07 17:46:12 -0700
committerPaul Eggert2017-09-07 17:47:24 -0700
commitaedc566a94116191d3a8b3f7f9955058316f9fdc (patch)
tree02c7082bfcfa23ce2b89393a382ba7112e47ba52 /test/src
parent53830c6336b52d58c315c7e11405181e01ee9a53 (diff)
downloademacs-aedc566a94116191d3a8b3f7f9955058316f9fdc.tar.gz
emacs-aedc566a94116191d3a8b3f7f9955058316f9fdc.zip
Fix bug: (directory-file-name "///") returned "//"
* src/fileio.c (directory_file_name): For "///" and longer, return "/", not "//", as per POSIX. * test/src/fileio-tests.el (fileio-tests--directory-file-name) (fileio-tests--file-name-as-directory): New tests.
Diffstat (limited to 'test/src')
-rw-r--r--test/src/fileio-tests.el19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el
index 5103d2f21e6..ac5d533e63b 100644
--- a/test/src/fileio-tests.el
+++ b/test/src/fileio-tests.el
@@ -44,3 +44,22 @@
44 "Check that any non-NULL ASCII character can appear in a symlink. 44 "Check that any non-NULL ASCII character can appear in a symlink.
45Also check that an encoding error can appear in a symlink." 45Also check that an encoding error can appear in a symlink."
46 (should (equal nil (fileio-tests--symlink-failure)))) 46 (should (equal nil (fileio-tests--symlink-failure))))
47
48(ert-deftest fileio-tests--directory-file-name ()
49 (should (equal (directory-file-name "/") "/"))
50 (should (equal (directory-file-name "//") "//"))
51 (should (equal (directory-file-name "///") "/"))
52 (should (equal (directory-file-name "////") "/"))
53 (should (equal (directory-file-name "/abc") "/abc"))
54 (should (equal (directory-file-name "/abc/") "/abc"))
55 (should (equal (directory-file-name "/abc//") "/abc")))
56
57(ert-deftest fileio-tests--file-name-as-directory ()
58 (should (equal (file-name-as-directory "") "./"))
59 (should (equal (file-name-as-directory "/") "/"))
60 (should (equal (file-name-as-directory "//") "//"))
61 (should (equal (file-name-as-directory "///") "///"))
62 (should (equal (file-name-as-directory "////") "////"))
63 (should (equal (file-name-as-directory "/abc") "/abc/"))
64 (should (equal (file-name-as-directory "/abc/") "/abc/"))
65 (should (equal (file-name-as-directory "/abc//") "/abc//")))