diff options
| author | Paul Eggert | 2020-05-16 17:04:15 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-05-16 17:05:37 -0700 |
| commit | c7bc28bf038e08fcc03e5dc96cd762af06b34e09 (patch) | |
| tree | 378ddd85e5549bddeb5642314c8ac1627743e324 /test/src | |
| parent | a6ebca21b349ccfffdc0d4b84578d4c7a0f3ee22 (diff) | |
| download | emacs-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.el | 34 |
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 | ||