diff --git a/test/lisp/json-tests.el b/test/lisp/json-tests.el index 05837e83f9..9d7ffd5feb 100644 --- a/test/lisp/json-tests.el +++ b/test/lisp/json-tests.el @@ -269,10 +269,13 @@ test-json-encode-plist-with-sort-predicate (should (equal (json-encode plist) "{\"a\":1,\"b\":2,\"c\":3}")))) (ert-deftest test-json-encode-alist-with-sort-predicate () - (let ((alist '((:c . 3) (:a . 1) (:b . 2))) - (json-encoding-object-sort-predicate 'string<) - (json-encoding-pretty-print nil)) - (should (equal (json-encode alist) "{\"a\":1,\"b\":2,\"c\":3}")))) + (let* ((alist '((:c . 3) (:a . 1) (:b . 2))) + (clone (copy-sequence alist)) + (json-encoding-object-sort-predicate #'string<) + (json-encoding-pretty-print nil)) + (should (equal (json-encode alist) "{\"a\":1,\"b\":2,\"c\":3}")) + ;; Ensure sorting isn't destructive (bug#40693). + (should (equal alist clone)))) (ert-deftest test-json-encode-list () (let ((json-encoding-pretty-print nil))