Skip to content

Commit

Permalink
Never count disabled doctests as executed on user request; discovered…
Browse files Browse the repository at this point in the history
… in PR #88.
  • Loading branch information
doublep committed Jun 5, 2023
1 parent b5fc717 commit 28d9f68
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
21 changes: 12 additions & 9 deletions eldev-doctor.el
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ or “NO”, depending on `ok'."
"Selector `%s' matches neither a doctest name nor a category" ,selector)))
(setf doctests (eldev-filter (if (memq it matches) (not negate) (memq it doctests)) eldev--doctests))))))
(if doctests
(let ((num-user-requested (length doctests))
(num-visibly-failed 0)
(doctests-sequence (list nil))
(let ((num-executed-on-request 0)
(num-visibly-failed 0)
(doctests-sequence (list nil))
results
generated-output
last-with-warnings)
Expand All @@ -87,6 +87,8 @@ or “NO”, depending on `ok'."
(function (cdr (assq name eldev--doctests)))
(user-requested (cdr doctest)))
(eldev-verbose "Running doctest `%s' %s..." name (if user-requested "on user request" "needed by some other test"))
(when user-requested
(setf num-executed-on-request (1+ num-executed-on-request)))
(let ((plist (funcall function results)))
(when plist
(push (cons name (plist-get plist 'result)) results)
Expand Down Expand Up @@ -120,12 +122,12 @@ or “NO”, depending on `ok'."
(setf last-with-warnings with-warnings
generated-output t))))))))
(if (= num-visibly-failed 0)
(eldev-print "\nRan %s, %s" (eldev-message-plural num-user-requested "doctest")
(eldev-colorize (if (= num-user-requested 1) "it didn't generate any warnings" "none generated any warnings") 'success))
(eldev-print "\nRan %s, %s" (eldev-message-plural num-executed-on-request "doctest")
(eldev-colorize (if (= num-executed-on-request 1) "it didn't generate any warnings" "none generated any warnings") 'success))
(eldev-warn "Ran %s, %s generated %s"
(eldev-message-plural num-user-requested "doctest")
(if (= num-visibly-failed num-user-requested)
(if (= num-user-requested 1) "it" "all of them")
(eldev-message-plural num-executed-on-request "doctest")
(if (= num-visibly-failed num-executed-on-request)
(if (= num-executed-on-request 1) "it" "all of them")
(eldev-format-message "%d of them" num-visibly-failed))
(if (= num-visibly-failed 1) "a warning" "warnings"))
(signal 'eldev-quit 1)))
Expand All @@ -134,7 +136,8 @@ or “NO”, depending on `ok'."
(defun eldev--doctor-build-sequence (sequence name user-requested &optional dependency-stack)
;; A project may disable certain tests. They still run when non-user-requested
;; (i.e. because of depedencies), but results are not printed.
(unless (and user-requested (eldev--doctor-test-disabled-p name))
(if (and user-requested (eldev--doctor-test-disabled-p name))
(eldev-trace "Ignoring doctest `%s' as disabled in this project" name)
(let ((scheduled (assq name (car sequence))))
(if scheduled
(when user-requested
Expand Down
5 changes: 4 additions & 1 deletion test/doctor.el
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@
(ert-deftest eldev-doctor-disabling-doctests ()
;; Pretend that the project has disabled it in its `Eldev'.
(eldev--test-run "trivial-project" ("--setup" `(push 'eldev-presence eldev-doctor-disabled-tests) "doctor" "eldev-presence")
(should (= exit-code 0)))
;; It would previously write "1 doctest", erroneously counting the test it hasn't
;; actually executed.
(should (string-match-p "0 doctests" stdout))
(should (= exit-code 0)))
(eldev--test-run "trivial-project" ("--setup" `(push 'eldev-presence eldev-doctor-disabled-tests) "doctor" "--list-tests")
(should (string-match-p "eldev-byte-compilable" stdout))
(should-not (string-match-p "eldev-presence" stdout))
Expand Down

0 comments on commit 28d9f68

Please sign in to comment.