]> git.eshelyaron.com Git - emacs.git/commitdiff
Add a test for primitive redefinition
authorAndrea Corallo <akrl@sdf.org>
Sat, 3 Oct 2020 14:12:19 +0000 (16:12 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 5 Oct 2020 19:32:38 +0000 (21:32 +0200)
* test/src/comp-tests.el (primitive-redefine): New test.
* test/src/comp-test-funcs.el (comp-test-primitive-redefine-f):
New function.

test/src/comp-test-funcs.el
test/src/comp-tests.el

index 19acec2716ec5fd65192ec88041e16ff3728a5e3..9285ed62c2aa250196cca34fdc7ee8c3f1cb1bd5 100644 (file)
   (declare (speed 2))
   (+ x y))
 
+(defun comp-test-primitive-redefine-f (x y)
+  (declare (speed 2))
+  (- x y))
+
 \f
 ;;;;;;;;;;;;;;;;;;;;
 ;; Tromey's tests ;;
index f954ae6a9ddaad3027077164ec29084e94b684fe..317a6113af2f92b76378ff426ff716cf18d09d39 100644 (file)
@@ -398,6 +398,17 @@ https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-03/msg00914.html."
           (should (equal comp-test-primitive-advice '(3 4))))
       (advice-remove #'+ f))))
 
+(defvar comp-test-primitive-redefine-args)
+(comp-deftest primitive-redefine ()
+  "Test effectiveness of primitve redefinition."
+  (cl-letf ((comp-test-primitive-redefine-args nil)
+            ((symbol-function #'-)
+             (lambda (&rest args)
+              (setq comp-test-primitive-redefine-args args)
+               'xxx)))
+    (should (eq (comp-test-primitive-redefine-f 10 2) 'xxx))
+    (should (equal comp-test-primitive-redefine-args '(10 2)))))
+
 \f
 ;;;;;;;;;;;;;;;;;;;;;
 ;; Tromey's tests. ;;