diff options
| author | Paul Eggert | 2017-08-19 17:15:52 -0700 |
|---|---|---|
| committer | Paul Eggert | 2017-08-19 17:17:09 -0700 |
| commit | 83f0d60e498c9cab59e098af6d9c403631ad645c (patch) | |
| tree | 38c3968b19d8eb83dc8c0b7c446330bd43383a42 /test/src | |
| parent | 1c382c096b8b7d1fa995e6131b887d9128085c68 (diff) | |
| download | emacs-83f0d60e498c9cab59e098af6d9c403631ad645c.tar.gz emacs-83f0d60e498c9cab59e098af6d9c403631ad645c.zip | |
Don’t adjust CRLF in file names
* doc/misc/gnus.texi (Non-ASCII Group Names):
* etc/NEWS:
* test/lisp/net/tramp-tests.el (tramp--test-utf8):
Use utf-8-unix, not utf-8, for default-file-name-coding-system, so
that CRLF in file names is left alone.
* lisp/international/mule-cmds.el (set-default-coding-systems):
Do not alter CRLF in file name coding systems.
(prefer-coding-system): Ignore differences in CRLF processing when
checking whether we used the user-specified file name coding system.
* test/src/fileio-tests.el: New file.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/fileio-tests.el | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el new file mode 100644 index 00000000000..75aca7d0ab8 --- /dev/null +++ b/test/src/fileio-tests.el | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | ;;; unit tests for src/fileio.c -*- lexical-binding: t; -*- | ||
| 2 | |||
| 3 | ;; Copyright 2017 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 8 | ;; it under the terms of the GNU General Public License as published by | ||
| 9 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 10 | ;; (at your option) any later version. | ||
| 11 | |||
| 12 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | ;; GNU General Public License for more details. | ||
| 16 | |||
| 17 | ;; You should have received a copy of the GNU General Public License | ||
| 18 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 19 | |||
| 20 | (require 'ert) | ||
| 21 | |||
| 22 | (defun try-char (char link) | ||
| 23 | (let ((target (string char))) | ||
| 24 | (make-symbolic-link target link) | ||
| 25 | (let* ((read-link (file-symlink-p link)) | ||
| 26 | (failure (unless (string-equal target read-link) | ||
| 27 | (list 'string-equal target read-link)))) | ||
| 28 | (delete-file link) | ||
| 29 | failure))) | ||
| 30 | |||
| 31 | (defun fileio-tests--symlink-failure () | ||
| 32 | (let* ((dir (make-temp-file "fileio" t)) | ||
| 33 | (link (expand-file-name "link" dir))) | ||
| 34 | (unwind-protect | ||
| 35 | (let ((failure | ||
| 36 | (let ((default-file-name-coding-system 'utf-8-unix)) | ||
| 37 | (try-char (unibyte-char-to-multibyte 128) link))) | ||
| 38 | (char 0)) | ||
| 39 | (while (and (not failure) (< char 300)) | ||
| 40 | (setq char (1+ char)) | ||
| 41 | (unless (= char ?~) | ||
| 42 | (setq failure (try-char char link)))) | ||
| 43 | failure) | ||
| 44 | (delete-directory dir t)))) | ||
| 45 | |||
| 46 | (ert-deftest fileio-tests--odd-symlink-chars () | ||
| 47 | "Check that any non-NULL ASCII character can appear in a symlink. | ||
| 48 | Also check that an encoding error can appear in a symlink." | ||
| 49 | (should (equal nil (fileio-tests--symlink-failure)))) | ||