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