From 7f1e54c61ac4bc06bbb5ba334a91c73e49a9f0ec Mon Sep 17 00:00:00 2001 From: Roi Martin Date: Wed, 22 Apr 2026 16:48:16 +0200 Subject: [PATCH] Test that ERT creates a list of executed tests from erts files * test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts: * test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts: New erts files. * test/lisp/emacs-lisp/ert-tests.el (ert-test-list-of-erts-file-tests): New test. --- .../erts-file-test-list-fail.erts | 23 +++++++++++++ .../ert-resources/erts-file-test-list.erts | 32 +++++++++++++++++++ test/lisp/emacs-lisp/ert-tests.el | 19 +++++++++++ 3 files changed, 74 insertions(+) create mode 100644 test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts create mode 100644 test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts diff --git a/test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts b/test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts new file mode 100644 index 00000000000..6683ae37987 --- /dev/null +++ b/test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts @@ -0,0 +1,23 @@ +Name: foo + +=-= +FOO +=-= +FOO +=-=-= + +Name: bar + +=-= +BAR +=-= +BAZ +=-=-= + +Name: quux + +=-= +QUUX +=-= +QUUX +=-=-= diff --git a/test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts b/test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts new file mode 100644 index 00000000000..737bcd000a7 --- /dev/null +++ b/test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts @@ -0,0 +1,32 @@ +Name: foo + +=-= +FOO +=-= +FOO +=-=-= + +Name: bar + +=-= +BAR +=-= +BAR +=-=-= + +Name: baz +Skip: t + +=-= +BAZ +=-= +BAZ +=-=-= + +Name: quux + +=-= +QUUX +=-= +QUUX +=-=-= diff --git a/test/lisp/emacs-lisp/ert-tests.el b/test/lisp/emacs-lisp/ert-tests.el index 00020e8bef6..2831a93ec07 100644 --- a/test/lisp/emacs-lisp/ert-tests.el +++ b/test/lisp/emacs-lisp/ert-tests.el @@ -1052,6 +1052,25 @@ F failing-test (ert-test-erts-file (ert-resource-file "erts-skip-last.erts") (lambda () ()))) +(ert-deftest ert-test-list-of-erts-file-tests () + "Test that the list of tests from erts files is created correctly." + (let ((run-erts-file-tests + (lambda (erts-file) + (let* ((ert-test (make-ert-test + :body (lambda () + (ert-test-erts-file + (ert-resource-file erts-file) + (lambda () ()))))) + (result (ert-run-test ert-test)) + (erts-file-tests (ert-test-result-erts-file-tests result))) + (mapcar (lambda (desc) + (cdr (assq 'name desc))) + erts-file-tests))))) + (should (equal (funcall run-erts-file-tests "erts-file-test-list.erts") + '("foo" "bar" "quux"))) + (should (equal (funcall run-erts-file-tests "erts-file-test-list-fail.erts") + '("foo" "bar"))))) + (provide 'ert-tests) ;;; ert-tests.el ends here