]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix 'Skip' behavior in erts files (bug#76839)
authorRoi Martin <jroi.martin@gmail.com>
Thu, 6 Mar 2025 19:26:46 +0000 (20:26 +0100)
committerEshel Yaron <me@eshelyaron.com>
Sat, 10 May 2025 06:57:03 +0000 (08:57 +0200)
* lisp/emacs-lisp/ert.el (ert-test--erts-test): Fix 'Skip'
behavior in erts files, so only the test case where it is
specified is skipped.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-erts-skip-one)
(ert-test-erts-skip-last): Add test cases.

(cherry picked from commit d164116aa52b10bdfe8242dd1089406d4e557f32)

lisp/emacs-lisp/ert.el
test/lisp/emacs-lisp/ert-resources/erts-skip-last.erts [new file with mode: 0644]
test/lisp/emacs-lisp/ert-resources/erts-skip-one.erts [new file with mode: 0644]
test/lisp/emacs-lisp/ert-tests.el

index 3548b3baf59661e29b29f0c5b06d648f2ea79b42..cffb5a4866bad156674496f0c3e8aa45f620788a 100644 (file)
@@ -2910,7 +2910,7 @@ write erts files."
     (if (and skip
              (eval (car (read-from-string skip))))
         ;; Skipping this test.
-        ()
+        (goto-char end-after)
       ;; Do the test.
       (goto-char end-after)
       ;; We have a separate after section.
diff --git a/test/lisp/emacs-lisp/ert-resources/erts-skip-last.erts b/test/lisp/emacs-lisp/ert-resources/erts-skip-last.erts
new file mode 100644 (file)
index 0000000..fd39efc
--- /dev/null
@@ -0,0 +1,8 @@
+Name: last
+Skip: t
+
+=-=
+FOO
+=-=
+BAR
+=-=-=
diff --git a/test/lisp/emacs-lisp/ert-resources/erts-skip-one.erts b/test/lisp/emacs-lisp/ert-resources/erts-skip-one.erts
new file mode 100644 (file)
index 0000000..3b35081
--- /dev/null
@@ -0,0 +1,16 @@
+Name: first
+Skip: t
+
+=-=
+FOO
+=-=
+FOO
+=-=-=
+
+Name: second
+
+=-=
+FOO
+=-=
+BAR
+=-=-=
index fa9096b58796ce9a1e7031953c12df0020bdc515..f6da801eb0ce0477d53e8d020d37c7452f4d79ac 100644 (file)
@@ -28,6 +28,7 @@
 
 (require 'cl-lib)
 (require 'ert)
+(require 'ert-x)
 
 ;;; Self-test that doesn't rely on ERT, for bootstrapping.
 
@@ -1029,6 +1030,17 @@ F failing-test
                  (ert-with-test-buffer (:name "foo" :selected t)
                    (buffer-name)))))
 
+(ert-deftest ert-test-erts-skip-one ()
+  "Test that Skip does not affect subsequent test cases (Bug#76839)."
+  (should-error (ert-test-erts-file (ert-resource-file "erts-skip-one.erts")
+                                    (lambda () ()))
+                :type 'ert-test-failed))
+
+(ert-deftest ert-test-erts-skip-last ()
+  "Test that Skip does not fail on last test case (Bug#76839)."
+  (ert-test-erts-file (ert-resource-file "erts-skip-last.erts")
+                      (lambda () ())))
+
 (provide 'ert-tests)
 
 ;;; ert-tests.el ends here