[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/buttercup cdbb8b061d 7/9: tests: Add tests for buttercup--
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/buttercup cdbb8b061d 7/9: tests: Add tests for buttercup--enclosed-expr |
Date: |
Wed, 10 Aug 2022 18:58:14 -0400 (EDT) |
branch: elpa/buttercup
commit cdbb8b061d176b4e6190d8aa69d5e6816f846c16
Author: Ola Nilsson <ola.nilsson@gmail.com>
Commit: Ola Nilsson <ola.nilsson@gmail.com>
tests: Add tests for buttercup--enclosed-expr
Includes a pending test for byte compiled expressions.
Tests that a lot of old expressions that used to be OK are no longer
OK.
---
tests/test-buttercup.el | 70 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/tests/test-buttercup.el b/tests/test-buttercup.el
index c0d31a6ea6..ea3da31ded 100644
--- a/tests/test-buttercup.el
+++ b/tests/test-buttercup.el
@@ -138,6 +138,76 @@ text properties using `ansi-color-apply'."
;; print remaining text
(insert-owrt string))))))
+;;;;;;;;;;
+;;; helpers
+
+(describe "The buttercup--enclosed-expr function"
+ (describe "should handle"
+ (it "expressions wrapped by buttercup--wrap-expr"
+ (expect (buttercup--enclosed-expr (buttercup--wrap-expr '(ignore)))
+ :to-equal '(ignore)))
+ (it "a closure with expression copy?"
+ (expect (buttercup--enclosed-expr
+ (let ((_foo 1))
+ (lambda () '(ignore) (buttercup--mark-stackframe) (ignore))))
+ :to-equal '(ignore)))
+ (it "a lambda with expression copy?"
+ ;; I suspect there is nothing to make sure that the quoted
+ ;; expression matches the actual expression
+ (expect (buttercup--enclosed-expr
+ '(lambda () (quote (ignore)) (buttercup--mark-stackframe)
(ignore))))
+ :to-equal '(ignore))
+ (xdescribe "byte compiled"
+ (it "lambda objects"
+ (expect (buttercup--enclosed-expr
+ (byte-compile-sexp '(lambda () '(ignore)
(buttercup--mark-stackframe) (ignore))))))
+ (it "wrapped expression"
+ (expect (buttercup--enclosed-expr (byte-compile-sexp
(buttercup--wrap-expr '(ignore))))))))
+ (describe "should error"
+ (it "on a simple closure"
+ (expect
+ (buttercup--enclosed-expr (let ((_foo 1)) (lambda () (ignore))))
+ :to-throw
+ 'error '("Not a zero-arg one-expression closure: (closure ((_foo . 1)
t) nil (ignore))")))
+ (it "on a closure with stackframe marker but no quoted expression"
+ (expect
+ (buttercup--enclosed-expr (let ((_foo 1)) (lambda ()
(buttercup--mark-stackframe) (ignore))))
+ :to-throw
+ 'error '("Not a zero-arg one-expression closure: (closure ((_foo . 1)
t) nil (buttercup--mark-stackframe) (ignore))")))
+ (it "for multi-statement closures"
+ (expect (buttercup--enclosed-expr
+ (lambda () '(+ 1 2) (buttercup--mark-stackframe) (+ 1 2)
(ignore)))
+ :to-throw
+ 'error
+ ;; The formatting differs in different versions of Emacs
+ (list (format "Not a zero-arg one-expression closure: %S"
+ '(closure (t) nil '(+ 1 2)
(buttercup--mark-stackframe) (+ 1 2) (ignore))))))
+ (it "for closures with non-empty argument lists"
+ (expect (buttercup--enclosed-expr
+ (lambda (foo) '(ignore foo) (buttercup--mark-stackframe)
(ignore foo)))
+ :to-throw
+ 'error
+ ;; The formatting differs in different versions of Emacs
+ (list (format "Not a zero-arg one-expression closure: %S"
+ '(closure (t) (foo) '(ignore foo)
(buttercup--mark-stackframe) (ignore foo))))))
+ (it "on simple lambda objects"
+ (expect (buttercup--enclosed-expr
+ '(lambda () (ignore)))
+ :to-throw))
+ (it "on a lambda with stackframe marker but no quoted expression"
+ (expect (buttercup--enclosed-expr
+ '(lambda () (buttercup--mark-stackframe) (ignore)))
+ :to-throw))
+ (it "for multi-statement lambdas"
+ (expect (buttercup--enclosed-expr
+ '(lambda () (+ 1 2) (ignore)))
+ :to-throw
+ 'error '("Not a zero-arg one-expression closure: (lambda nil (+
1 2) (ignore))")))
+ (it "for lambdas with non-empty argument lists"
+ (expect (buttercup--enclosed-expr
+ '(lambda (foo) (ignore foo)))
+ :to-throw
+ 'error '("Not a zero-arg one-expression closure: (lambda (foo)
(ignore foo))")))))
;;;;;;;;;;
;;; expect
- [nongnu] elpa/buttercup updated (62176a39ee -> 497f6c2795), ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup ec4d94f7d5 3/9: tests: Create enclosed expressions with buttercup--wrap-expr, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup ef293a62df 1/9: Fix: (buttercup--enclosed-expr) byte-code functions, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 8dda6ef8c9 2/9: Refactor the expect macro, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 1bb0ba9439 8/9: Merge PR 219 into byte-compiled, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 497f6c2795 9/9: Merge branch 'byte-compiled', ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 4cbd106609 5/9: tests: Use buttercup--wrap-expr instead of make-list-of-closures, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 435fc0d378 4/9: tests: Fix some buttercup-expect tests, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup 0e26b1bbed 6/9: Clean up buttercup--enclosed-expr, ELPA Syncer, 2022/08/10
- [nongnu] elpa/buttercup cdbb8b061d 7/9: tests: Add tests for buttercup--enclosed-expr,
ELPA Syncer <=