diff options
author | Stephen Leake <stephen_leake@stephe-leake.org> | 2015-11-03 08:37:53 -0600 |
---|---|---|
committer | Stephen Leake <stephen_leake@stephe-leake.org> | 2015-11-03 08:48:54 -0600 |
commit | fcfa23911dfb530c2fb5cdc81518127853c88f9a (patch) | |
tree | 43bde7134283cc47ed086cf2417103702a05e970 | |
parent | 7ad183d8905e7b15690b98d67ae0ae22d873bfa8 (diff) |
Fix Bug#21816; case insensitive file system in elisp-mode-tests.el
* test/automated/elisp-mode-tests.el (xref-elisp-test-run): Use
case-insensitive string compare for file names.
(emacs-test-dir): Add 'downcase' to cause case differences (at least on
my system).
-rw-r--r-- | test/automated/elisp-mode-tests.el | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/test/automated/elisp-mode-tests.el b/test/automated/elisp-mode-tests.el index 2f6675a280..bd83f1af43 100644 --- a/test/automated/elisp-mode-tests.el +++ b/test/automated/elisp-mode-tests.el @@ -1,4 +1,4 @@ -;;; elisp-mode-tests.el --- Tests for emacs-lisp-mode -*- lexical-binding: t; -*- +d;;; elisp-mode-tests.el --- Tests for emacs-lisp-mode -*- lexical-binding: t; -*- ;; Copyright (C) 2015 Free Software Foundation, Inc. @@ -179,15 +179,23 @@ (defun xref-elisp-test-run (xrefs expected-xrefs) (should (= (length xrefs) (length expected-xrefs))) (while xrefs - (let ((xref (pop xrefs)) - (expected (pop expected-xrefs))) + (let* ((xref (pop xrefs)) + (expected (pop expected-xrefs)) + (expected-xref (or (when (consp expected) (car expected)) expected)) + (expected-source (when (consp expected) (cdr expected)))) - (should (equal xref - (or (when (consp expected) (car expected)) expected))) + ;; Downcase the filenames for case-insensitive file systems. + (setf (xref-elisp-location-file (oref xref location)) + (downcase (xref-elisp-location-file (oref xref location)))) + + (setf (xref-elisp-location-file (oref expected-xref location)) + (downcase (xref-elisp-location-file (oref expected-xref location)))) + + (should (equal xref expected-xref)) (xref--goto-location (xref-item-location xref)) (back-to-indentation) - (should (looking-at (or (when (consp expected) (cdr expected)) + (should (looking-at (or expected-source (xref-elisp-test-descr-to-target expected))))) )) @@ -207,7 +215,16 @@ to (xref-elisp-test-descr-to-target xref)." ;; so we must provide this dir to expand-file-name in the expected ;; results. This also allows running these tests from other ;; directories. -(defconst emacs-test-dir (file-name-directory (or load-file-name (buffer-file-name)))) +;; +;; We add 'downcase' here to deliberately cause a potential problem on +;; case-insensitive file systems. On such systems, `load-file-name' +;; may not have the same case as the real file system, since the user +;; can set `load-path' to have the wrong case (on my Windows system, +;; `load-path' has the correct case, so this causes the expected test +;; values to have the wrong case). This is handled in +;; `xref-elisp-test-run'. +(defconst emacs-test-dir (downcase (file-name-directory (or load-file-name (buffer-file-name))))) + ;; alphabetical by test name |