aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorPaul Eggert2020-05-16 17:04:15 -0700
committerPaul Eggert2020-05-16 17:05:37 -0700
commitc7bc28bf038e08fcc03e5dc96cd762af06b34e09 (patch)
tree378ddd85e5549bddeb5642314c8ac1627743e324 /test/src
parenta6ebca21b349ccfffdc0d4b84578d4c7a0f3ee22 (diff)
downloademacs-c7bc28bf038e08fcc03e5dc96cd762af06b34e09.tar.gz
emacs-c7bc28bf038e08fcc03e5dc96cd762af06b34e09.zip
Don’t attempt to modify constant conses
From a patch privately suggested by Mattias Engdegård on 2020-05-11 in a followup to Bug#40671. * admin/charsets/cp51932.awk: * admin/charsets/eucjp-ms.awk: Generate code that does not modify constant conses. * doc/misc/emacs-mime.texi (Encoding Customization): * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops): * lisp/frameset.el (frameset-persistent-filter-alist): * lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist): Use append instead of nconc. * lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map) (jisx0213-to-unicode): Use mapcar instead of mapc. * lisp/language/lao-util.el (lao-transcription-consonant-alist) (lao-transcription-vowel-alist): * lisp/language/tibetan.el (tibetan-subjoined-transcription-alist): Use copy-sequence. * test/src/fns-tests.el (fns-tests-nreverse): (fns-tests-sort, fns-tests-collate-sort) (fns-tests-string-version-lessp, fns-tests-mapcan): Use copy-sequence, vector, and list.
Diffstat (limited to 'test/src')
-rw-r--r--test/src/fns-tests.el34
1 files changed, 17 insertions, 17 deletions
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el
index c6ceae4a00e..b65543a64b5 100644
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -49,21 +49,21 @@
49 (should-error (nreverse)) 49 (should-error (nreverse))
50 (should-error (nreverse 1)) 50 (should-error (nreverse 1))
51 (should-error (nreverse (make-char-table 'foo))) 51 (should-error (nreverse (make-char-table 'foo)))
52 (should (equal (nreverse "xyzzy") "yzzyx")) 52 (should (equal (nreverse (copy-sequence "xyzzy")) "yzzyx"))
53 (let ((A [])) 53 (let ((A (vector)))
54 (nreverse A) 54 (nreverse A)
55 (should (equal A []))) 55 (should (equal A [])))
56 (let ((A [0])) 56 (let ((A (vector 0)))
57 (nreverse A) 57 (nreverse A)
58 (should (equal A [0]))) 58 (should (equal A [0])))
59 (let ((A [1 2 3 4])) 59 (let ((A (vector 1 2 3 4)))
60 (nreverse A) 60 (nreverse A)
61 (should (equal A [4 3 2 1]))) 61 (should (equal A [4 3 2 1])))
62 (let ((A [1 2 3 4])) 62 (let ((A (vector 1 2 3 4)))
63 (nreverse A) 63 (nreverse A)
64 (nreverse A) 64 (nreverse A)
65 (should (equal A [1 2 3 4]))) 65 (should (equal A [1 2 3 4])))
66 (let* ((A [1 2 3 4]) 66 (let* ((A (vector 1 2 3 4))
67 (B (nreverse (nreverse A)))) 67 (B (nreverse (nreverse A))))
68 (should (equal A B)))) 68 (should (equal A B))))
69 69
@@ -146,13 +146,13 @@
146;; Invalid UTF-8 sequences shall be indicated. How to create such strings? 146;; Invalid UTF-8 sequences shall be indicated. How to create such strings?
147 147
148(ert-deftest fns-tests-sort () 148(ert-deftest fns-tests-sort ()
149 (should (equal (sort '(9 5 2 -1 5 3 8 7 4) (lambda (x y) (< x y))) 149 (should (equal (sort (list 9 5 2 -1 5 3 8 7 4) (lambda (x y) (< x y)))
150 '(-1 2 3 4 5 5 7 8 9))) 150 '(-1 2 3 4 5 5 7 8 9)))
151 (should (equal (sort '(9 5 2 -1 5 3 8 7 4) (lambda (x y) (> x y))) 151 (should (equal (sort (list 9 5 2 -1 5 3 8 7 4) (lambda (x y) (> x y)))
152 '(9 8 7 5 5 4 3 2 -1))) 152 '(9 8 7 5 5 4 3 2 -1)))
153 (should (equal (sort '[9 5 2 -1 5 3 8 7 4] (lambda (x y) (< x y))) 153 (should (equal (sort (vector 9 5 2 -1 5 3 8 7 4) (lambda (x y) (< x y)))
154 [-1 2 3 4 5 5 7 8 9])) 154 [-1 2 3 4 5 5 7 8 9]))
155 (should (equal (sort '[9 5 2 -1 5 3 8 7 4] (lambda (x y) (> x y))) 155 (should (equal (sort (vector 9 5 2 -1 5 3 8 7 4) (lambda (x y) (> x y)))
156 [9 8 7 5 5 4 3 2 -1])) 156 [9 8 7 5 5 4 3 2 -1]))
157 (should (equal 157 (should (equal
158 (sort 158 (sort
@@ -172,7 +172,7 @@
172 ;; Punctuation and whitespace characters are relevant for POSIX. 172 ;; Punctuation and whitespace characters are relevant for POSIX.
173 (should 173 (should
174 (equal 174 (equal
175 (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") 175 (sort (list "11" "12" "1 1" "1 2" "1.1" "1.2")
176 (lambda (a b) (string-collate-lessp a b "POSIX"))) 176 (lambda (a b) (string-collate-lessp a b "POSIX")))
177 '("1 1" "1 2" "1.1" "1.2" "11" "12"))) 177 '("1 1" "1 2" "1.1" "1.2" "11" "12")))
178 ;; Punctuation and whitespace characters are not taken into account 178 ;; Punctuation and whitespace characters are not taken into account
@@ -180,7 +180,7 @@
180 (when (eq system-type 'windows-nt) 180 (when (eq system-type 'windows-nt)
181 (should 181 (should
182 (equal 182 (equal
183 (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") 183 (sort (list "11" "12" "1 1" "1 2" "1.1" "1.2")
184 (lambda (a b) 184 (lambda (a b)
185 (let ((w32-collate-ignore-punctuation t)) 185 (let ((w32-collate-ignore-punctuation t))
186 (string-collate-lessp 186 (string-collate-lessp
@@ -190,7 +190,7 @@
190 ;; Diacritics are different letters for POSIX, they sort lexicographical. 190 ;; Diacritics are different letters for POSIX, they sort lexicographical.
191 (should 191 (should
192 (equal 192 (equal
193 (sort '("Ævar" "Agustín" "Adrian" "Eli") 193 (sort (list "Ævar" "Agustín" "Adrian" "Eli")
194 (lambda (a b) (string-collate-lessp a b "POSIX"))) 194 (lambda (a b) (string-collate-lessp a b "POSIX")))
195 '("Adrian" "Agustín" "Eli" "Ævar"))) 195 '("Adrian" "Agustín" "Eli" "Ævar")))
196 ;; Diacritics are sorted between similar letters for other locales, 196 ;; Diacritics are sorted between similar letters for other locales,
@@ -198,7 +198,7 @@
198 (when (eq system-type 'windows-nt) 198 (when (eq system-type 'windows-nt)
199 (should 199 (should
200 (equal 200 (equal
201 (sort '("Ævar" "Agustín" "Adrian" "Eli") 201 (sort (list "Ævar" "Agustín" "Adrian" "Eli")
202 (lambda (a b) 202 (lambda (a b)
203 (let ((w32-collate-ignore-punctuation t)) 203 (let ((w32-collate-ignore-punctuation t))
204 (string-collate-lessp 204 (string-collate-lessp
@@ -212,7 +212,7 @@
212 (should (not (string-version-lessp "foo20000.png" "foo12.png"))) 212 (should (not (string-version-lessp "foo20000.png" "foo12.png")))
213 (should (string-version-lessp "foo.png" "foo2.png")) 213 (should (string-version-lessp "foo.png" "foo2.png"))
214 (should (not (string-version-lessp "foo2.png" "foo.png"))) 214 (should (not (string-version-lessp "foo2.png" "foo.png")))
215 (should (equal (sort '("foo12.png" "foo2.png" "foo1.png") 215 (should (equal (sort (list "foo12.png" "foo2.png" "foo1.png")
216 'string-version-lessp) 216 'string-version-lessp)
217 '("foo1.png" "foo2.png" "foo12.png"))) 217 '("foo1.png" "foo2.png" "foo12.png")))
218 (should (string-version-lessp "foo2" "foo1234")) 218 (should (string-version-lessp "foo2" "foo1234"))
@@ -432,9 +432,9 @@
432 (should-error (mapcan)) 432 (should-error (mapcan))
433 (should-error (mapcan #'identity)) 433 (should-error (mapcan #'identity))
434 (should-error (mapcan #'identity (make-char-table 'foo))) 434 (should-error (mapcan #'identity (make-char-table 'foo)))
435 (should (equal (mapcan #'list '(1 2 3)) '(1 2 3))) 435 (should (equal (mapcan #'list (list 1 2 3)) '(1 2 3)))
436 ;; `mapcan' is destructive 436 ;; `mapcan' is destructive
437 (let ((data '((foo) (bar)))) 437 (let ((data (list (list 'foo) (list 'bar))))
438 (should (equal (mapcan #'identity data) '(foo bar))) 438 (should (equal (mapcan #'identity data) '(foo bar)))
439 (should (equal data '((foo bar) (bar)))))) 439 (should (equal data '((foo bar) (bar))))))
440 440