]> git.eshelyaron.com Git - emacs.git/commitdiff
Add tests for `map-elt'
authorMatt Armstrong <matt@rfc20.org>
Thu, 6 May 2021 11:29:33 +0000 (13:29 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 6 May 2021 11:32:04 +0000 (13:32 +0200)
* test/lisp/emacs-lisp/map-tests.el: Add (failing) tests for `map-elt'
(bug#47572).

test/lisp/emacs-lisp/map-tests.el

index 67666d8e7e7287e708456d3a764c65dd1179bf8a..a04c6bef02a058ab52bf3a9158dde627980cddfd 100644 (file)
@@ -476,5 +476,42 @@ Evaluate BODY for each created map."
                      (list one two))
                    '(1 2)))))
 
+(ert-deftest test-map-setf-alist-insert-key ()
+  (let ((alist))
+    (should (equal (setf (map-elt alist 'key) 'value)
+                   'value))
+    (should (equal alist '((key . value))))))
+
+(ert-deftest test-map-setf-alist-overwrite-key ()
+  (let ((alist '((key . value1))))
+    (should (equal (setf (map-elt alist 'key) 'value2)
+                   'value2))
+    (should (equal alist '((key . value2))))))
+
+(ert-deftest test-map-setf-plist-insert-key ()
+  (let ((plist '(key value)))
+    (should (equal (setf (map-elt plist 'key2) 'value2)
+                   'value2))
+    (should (equal plist '(key value key2 value2)))))
+
+(ert-deftest test-map-setf-plist-overwrite-key ()
+  (let ((plist '(key value)))
+    (should (equal (setf (map-elt plist 'key) 'value2)
+                   'value2))
+    (should (equal plist '(key value2)))))
+
+(ert-deftest test-hash-table-setf-insert-key ()
+  (let ((ht (make-hash-table)))
+    (should (equal (setf (map-elt ht 'key) 'value)
+                  'value))
+    (should (equal (map-elt ht 'key) 'value))))
+
+(ert-deftest test-hash-table-setf-overwrite-key ()
+  (let ((ht (make-hash-table)))
+    (puthash 'key 'value1 ht)
+    (should (equal (setf (map-elt ht 'key) 'value2)
+                  'value2))
+    (should (equal (map-elt ht 'key) 'value2))))
+
 (provide 'map-tests)
 ;;; map-tests.el ends here