aboutsummaryrefslogtreecommitdiff
path: root/compat-tests.el
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2023-01-19 12:51:25 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2023-01-19 12:51:25 +0100
commitcd5d9d5d4aedd214ca820f473db9387e4560f886 (patch)
tree96a2b031a2e1382461b6a0b8abce47023dc39740 /compat-tests.el
parenta64a1f67ec118145187795986e68fb77176d80c4 (diff)
Backport pcasefeature/pcase
Seems problematic
Diffstat (limited to 'compat-tests.el')
-rw-r--r--compat-tests.el51
1 files changed, 49 insertions, 2 deletions
diff --git a/compat-tests.el b/compat-tests.el
index 9ff6425..09488bb 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -1,4 +1,4 @@
-;;; compat-tests.el --- Tests for Compat -*- lexical-binding: t; no-byte-compile: t; -*-
+;;; compat-tests.el --- Tests for Compat -*- lexical-binding: t -*-
;; Copyright (C) 2021-2023 Free Software Foundation, Inc.
@@ -939,7 +939,7 @@
(insert "first\nsecond\nthird\n")
(goto-char 7)
(delete-line)
- (should (equal (buffer-string) "first\nthird\n"))))
+ (should-equal (buffer-string) "first\nthird\n")))
(ert-deftest list-of-strings-p ()
(should-not (list-of-strings-p 1))
@@ -2662,5 +2662,52 @@
(should-equal "*scratch*" (buffer-name (get-scratch-buffer-create)))
(should-equal initial-major-mode (buffer-local-value 'major-mode (get-scratch-buffer-create))))
+(ert-deftest pcase-setq ()
+ (should-equal (let (a b)
+ (pcase-setq a 1 b 2)
+ (list a b))
+ '(1 2))
+
+ (should-equal (let (a b)
+ (pcase-setq `((,a) (,b)) '((1) (2)))
+ (list a b))
+ (list 1 2))
+
+ (should-equal (list nil nil)
+ (let ((a 'unset)
+ (b 'unset))
+ (pcase-setq `(head ,a ,b) nil)
+ (list a b)))
+
+ (should-equal (let (a b)
+ (pcase-setq `[,a ,b] [1 2])
+ (list a b))
+ '(1 2))
+
+ (should-error (let (a b)
+ (pcase-setq `[,a ,b] nil)
+ (list a b)))
+
+ (should-equal (let (a)
+ (pcase-setq a 1 `(,a) '(2))
+ a)
+ 2)
+
+ (should-equal (let (array list-item array-copy)
+ (pcase-setq (or `(,list-item) array) [1 2 3]
+ array-copy array
+ ;; This re-sets `array' to nil.
+ (or `(,list-item) array) '(4))
+ (list array array-copy list-item))
+ '(nil [1 2 3] 4))
+
+ (let ((a nil))
+ (should-error (pcase-setq a 1 b)
+ :type '(wrong-number-of-arguments))
+ (should-not a))
+
+ (should-error (pcase-setq a)
+ :type '(wrong-number-of-arguments)))
+
(provide 'compat-tests)
;;; compat-tests.el ends here