aboutsummaryrefslogtreecommitdiff
path: root/languages/elisp/claude/scripts
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-21 23:57:34 -0400
committerCraig Jennings <c@cjennings.net>2026-06-21 23:57:34 -0400
commitfb867366f4760da94f732c296601f7c324de0418 (patch)
tree317c1b1dafb622c12572b6c907e7104114751dbd /languages/elisp/claude/scripts
parented27e3c760bdc924edcba85bc99ed083df484086 (diff)
downloadrulesets-fb867366f4760da94f732c296601f7c324de0418.tar.gz
rulesets-fb867366f4760da94f732c296601f7c324de0418.zip
fix(elisp): exclude generated package files from coverage source scan
cj/coverage-summary--source-files scanned SOURCE-DIR for *.el and treated every match as testable source. Build tools write NAME-autoloads.el and NAME-pkg.el into that dir, and undercover never instruments them, so the missing-file detection counted each as untested at 0% and dragged the file-weighted project number down. emacs-wttrin read 72.9% instead of 97.2% after eask wrote its autoloads file during a coverage run. seq-remove the generated files before returning. A genuinely untested source is still flagged. The new test asserts both.
Diffstat (limited to 'languages/elisp/claude/scripts')
-rw-r--r--languages/elisp/claude/scripts/coverage-summary.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/languages/elisp/claude/scripts/coverage-summary.el b/languages/elisp/claude/scripts/coverage-summary.el
index eb30c66..4b7f5c9 100644
--- a/languages/elisp/claude/scripts/coverage-summary.el
+++ b/languages/elisp/claude/scripts/coverage-summary.el
@@ -91,11 +91,15 @@ missing or malformed."
(defun cj/coverage-summary--source-files (source-dir project-root)
"Return *.el files directly under SOURCE-DIR, relative to PROJECT-ROOT.
-Sorted; compiled files and subdirectories are out of scope."
+Sorted. Compiled files and subdirectories are out of scope, as are generated
+package files (`*-autoloads.el', `*-pkg.el') -- a build tool writes those, no
+test covers them, and counting them as untested source skews the number."
(let ((source-dir (file-name-as-directory (expand-file-name source-dir)))
(project-root (file-name-as-directory (expand-file-name project-root))))
- (sort (mapcar (lambda (p) (file-relative-name p project-root))
- (directory-files source-dir t "\\.el\\'"))
+ (sort (seq-remove
+ (lambda (p) (string-match-p "\\(?:-autoloads\\|-pkg\\)\\.el\\'" p))
+ (mapcar (lambda (p) (file-relative-name p project-root))
+ (directory-files source-dir t "\\.el\\'")))
#'string<)))
(defun cj/coverage-summary--missing (tracked source-dir project-root)