diff options
| author | Paul Eggert | 2020-05-16 22:23:28 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-05-16 22:25:07 -0700 |
| commit | 313955110b242cd18fc19bd168032d3ddf39fe94 (patch) | |
| tree | 4292cf3b216b6a76e5c28e3841c2f6fa2f56caf3 /test | |
| parent | 1fc4e3fb3f6caba6a4ca69060c7992ea5d24ff36 (diff) | |
| download | emacs-313955110b242cd18fc19bd168032d3ddf39fe94.tar.gz emacs-313955110b242cd18fc19bd168032d3ddf39fe94.zip | |
Don’t attempt to modify constant strings
* lisp/bookmark.el (bookmark-bmenu-set-header):
Use copy-sequence instead of concat, for clarity.
Also, the byte-compiler optimizes (concat "a" "b") into "ab".
* lisp/button.el (make-text-button):
* test/lisp/erc/erc-track-tests.el (erc-track--erc-faces-in):
* test/lisp/password-cache-tests.el:
(password-cache-tests-add-and-remove)
(password-cache-tests-read-from-cache)
(password-cache-tests-in-cache-p, password-cache-tests-read)
(password-cache-tests-reset)
(password-cache-tests-add/expires-key)
(password-cache-tests-no-password-cache):
Don’t attempt to modify constant strings.
* lisp/progmodes/elisp-mode.el (elisp--xref-format)
(elisp--xref-format-extra):
Don’t attempt to modify constant strings via put-text-property.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-across-ref):
Don’t attempt to modify constant vectors or strings.
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/emacs-lisp/cl-macs-tests.el | 4 | ||||
| -rw-r--r-- | test/lisp/erc/erc-track-tests.el | 4 | ||||
| -rw-r--r-- | test/lisp/password-cache-tests.el | 14 |
3 files changed, 12 insertions, 10 deletions
diff --git a/test/lisp/emacs-lisp/cl-macs-tests.el b/test/lisp/emacs-lisp/cl-macs-tests.el index 983e79ac57c..24bbad0cc6b 100644 --- a/test/lisp/emacs-lisp/cl-macs-tests.el +++ b/test/lisp/emacs-lisp/cl-macs-tests.el | |||
| @@ -425,7 +425,9 @@ collection clause." | |||
| 425 | '(2 3 4 5 6)))) | 425 | '(2 3 4 5 6)))) |
| 426 | 426 | ||
| 427 | (ert-deftest cl-macs-loop-across-ref () | 427 | (ert-deftest cl-macs-loop-across-ref () |
| 428 | (should (equal (cl-loop with my-vec = ["one" "two" "three"] | 428 | (should (equal (cl-loop with my-vec = (vector (cl-copy-seq "one") |
| 429 | (cl-copy-seq "two") | ||
| 430 | (cl-copy-seq "three")) | ||
| 429 | for x across-ref my-vec | 431 | for x across-ref my-vec |
| 430 | do (setf (aref x 0) (upcase (aref x 0))) | 432 | do (setf (aref x 0) (upcase (aref x 0))) |
| 431 | finally return my-vec) | 433 | finally return my-vec) |
diff --git a/test/lisp/erc/erc-track-tests.el b/test/lisp/erc/erc-track-tests.el index 7e924c22347..457f08cb73c 100644 --- a/test/lisp/erc/erc-track-tests.el +++ b/test/lisp/erc/erc-track-tests.el | |||
| @@ -107,8 +107,8 @@ | |||
| 107 | 107 | ||
| 108 | (ert-deftest erc-track--erc-faces-in () | 108 | (ert-deftest erc-track--erc-faces-in () |
| 109 | "`erc-faces-in' should pick up both 'face and 'font-lock-face properties." | 109 | "`erc-faces-in' should pick up both 'face and 'font-lock-face properties." |
| 110 | (let ((str0 "is bold") | 110 | (let ((str0 (copy-sequence "is bold")) |
| 111 | (str1 "is bold")) | 111 | (str1 (copy-sequence "is bold"))) |
| 112 | ;; Turn on Font Lock mode: this initialize `char-property-alias-alist' | 112 | ;; Turn on Font Lock mode: this initialize `char-property-alias-alist' |
| 113 | ;; to '((face font-lock-face)). Note that `font-lock-mode' don't | 113 | ;; to '((face font-lock-face)). Note that `font-lock-mode' don't |
| 114 | ;; turn on the mode if the test is run on batch mode or if the | 114 | ;; turn on the mode if the test is run on batch mode or if the |
diff --git a/test/lisp/password-cache-tests.el b/test/lisp/password-cache-tests.el index 01f4358fc59..55ebbfce7fe 100644 --- a/test/lisp/password-cache-tests.el +++ b/test/lisp/password-cache-tests.el | |||
| @@ -28,31 +28,31 @@ | |||
| 28 | 28 | ||
| 29 | (ert-deftest password-cache-tests-add-and-remove () | 29 | (ert-deftest password-cache-tests-add-and-remove () |
| 30 | (let ((password-data (copy-hash-table password-data))) | 30 | (let ((password-data (copy-hash-table password-data))) |
| 31 | (password-cache-add "foo" "bar") | 31 | (password-cache-add "foo" (copy-sequence "bar")) |
| 32 | (should (eq (password-in-cache-p "foo") t)) | 32 | (should (eq (password-in-cache-p "foo") t)) |
| 33 | (password-cache-remove "foo") | 33 | (password-cache-remove "foo") |
| 34 | (should (not (password-in-cache-p "foo"))))) | 34 | (should (not (password-in-cache-p "foo"))))) |
| 35 | 35 | ||
| 36 | (ert-deftest password-cache-tests-read-from-cache () | 36 | (ert-deftest password-cache-tests-read-from-cache () |
| 37 | (let ((password-data (copy-hash-table password-data))) | 37 | (let ((password-data (copy-hash-table password-data))) |
| 38 | (password-cache-add "foo" "bar") | 38 | (password-cache-add "foo" (copy-sequence "bar")) |
| 39 | (should (equal (password-read-from-cache "foo") "bar")) | 39 | (should (equal (password-read-from-cache "foo") "bar")) |
| 40 | (should (not (password-read-from-cache nil))))) | 40 | (should (not (password-read-from-cache nil))))) |
| 41 | 41 | ||
| 42 | (ert-deftest password-cache-tests-in-cache-p () | 42 | (ert-deftest password-cache-tests-in-cache-p () |
| 43 | (let ((password-data (copy-hash-table password-data))) | 43 | (let ((password-data (copy-hash-table password-data))) |
| 44 | (password-cache-add "foo" "bar") | 44 | (password-cache-add "foo" (copy-sequence "bar")) |
| 45 | (should (password-in-cache-p "foo")) | 45 | (should (password-in-cache-p "foo")) |
| 46 | (should (not (password-read-from-cache nil))))) | 46 | (should (not (password-read-from-cache nil))))) |
| 47 | 47 | ||
| 48 | (ert-deftest password-cache-tests-read () | 48 | (ert-deftest password-cache-tests-read () |
| 49 | (let ((password-data (copy-hash-table password-data))) | 49 | (let ((password-data (copy-hash-table password-data))) |
| 50 | (password-cache-add "foo" "bar") | 50 | (password-cache-add "foo" (copy-sequence "bar")) |
| 51 | (should (equal (password-read nil "foo") "bar")))) | 51 | (should (equal (password-read nil "foo") "bar")))) |
| 52 | 52 | ||
| 53 | (ert-deftest password-cache-tests-reset () | 53 | (ert-deftest password-cache-tests-reset () |
| 54 | (let ((password-data (copy-hash-table password-data))) | 54 | (let ((password-data (copy-hash-table password-data))) |
| 55 | (password-cache-add "foo" "bar") | 55 | (password-cache-add "foo" (copy-sequence "bar")) |
| 56 | (password-reset) | 56 | (password-reset) |
| 57 | (should (not (password-in-cache-p "foo"))))) | 57 | (should (not (password-in-cache-p "foo"))))) |
| 58 | 58 | ||
| @@ -60,14 +60,14 @@ | |||
| 60 | :tags '(:expensive-test) | 60 | :tags '(:expensive-test) |
| 61 | (let ((password-data (copy-hash-table password-data)) | 61 | (let ((password-data (copy-hash-table password-data)) |
| 62 | (password-cache-expiry 0.01)) | 62 | (password-cache-expiry 0.01)) |
| 63 | (password-cache-add "foo" "bar") | 63 | (password-cache-add "foo" (copy-sequence "bar")) |
| 64 | (sit-for 0.1) | 64 | (sit-for 0.1) |
| 65 | (should (not (password-in-cache-p "foo"))))) | 65 | (should (not (password-in-cache-p "foo"))))) |
| 66 | 66 | ||
| 67 | (ert-deftest password-cache-tests-no-password-cache () | 67 | (ert-deftest password-cache-tests-no-password-cache () |
| 68 | (let ((password-data (copy-hash-table password-data)) | 68 | (let ((password-data (copy-hash-table password-data)) |
| 69 | (password-cache nil)) | 69 | (password-cache nil)) |
| 70 | (password-cache-add "foo" "bar") | 70 | (password-cache-add "foo" (copy-sequence "bar")) |
| 71 | (should (not (password-in-cache-p "foo"))) | 71 | (should (not (password-in-cache-p "foo"))) |
| 72 | (should (not (password-read-from-cache "foo"))))) | 72 | (should (not (password-read-from-cache "foo"))))) |
| 73 | 73 | ||