aboutsummaryrefslogtreecommitdiff
path: root/tests/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* test: harden test dependency and temp-dir setupCraig Jennings2026-05-101-3/+8
|
* refactor: clear the rest of the lint backlog and make `make lint' actually workCraig Jennings2026-05-051-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Took the package-lint commit's foundation and finished the job. Three groups of changes: 1. **checkdoc** is now clean across all three package files. I worked through every warning: 13 missing-double-space-after-period fixes, 4 message-capitalization fixes, 1 trailing-period-on-error fix, 6 Lisp-symbol-should-be-quoted fixes, and one rephrase from "starts" to the imperative "Log the start of an async check". One `chime-debug.el' docstring also exceeded 80 columns and got split into two lines. 2. **`make lint'** ran elisp-lint but had been silently broken. The shell glob `test-*.el' wasn't expanding (CWD ended up at project root, not tests/), and the noisy validators flagged everything. I rewrote the target to lint package files explicitly via absolute paths, preload chime.el so the byte-compiler sees cross-file symbols when checking chime-debug.el, and disable the validators that conflict with project style or duplicate other lint steps: - `--no-checkdoc' (covered by `eask lint checkdoc') - `--no-package-lint' (covered by `eask lint package'; running it on auxiliary files re-flags them as standalone packages) - `--no-indent-character' (project uses spaces per `.claude/rules/elisp.md'; the validator defaults to tabs) - `--no-fill-column' (project allows up to 80; validator defaults to 70) - `--no-indent' (false-positives on dash threading macros `->'/`->>') The validators-disabled list is documented in the recipe header. 3. **Generated autoload files** (`chime-autoloads.el', `tests/tests-autoloads.el') are now gitignored. `tests/tests-autoloads.el' was tracked from an earlier commit; I removed it from the index. Eask regenerates these on every `eask compile' / `eask install-deps' run, so they don't belong in the tree. Verified: `make compile' clean (with byte-compile-error-on-warn t), `make test-all' green at 677 tests, `eask lint package' clean, `eask lint checkdoc' clean, `make lint' clean. Full lint backlog is now zero across all three checks.
* test: tag integration suite :slow and unstick test-allCraig Jennings2026-05-051-1/+1
| | | | | | | | | | | | | | | I tagged the 15 end-to-end tests across `test-integration-chime-mode.el`, `test-integration-recurring-events-tooltip.el`, and `test-integration-startup.el` with `:tags '(:slow)`. The default `make test` now runs only the 652 fast unit tests; `make test-all` runs the full 667. While verifying, I hit a pre-existing bug in `tests/Makefile` where `test-all`'s `--eval '(ert-run-tests-batch-and-exit)'` came back from eask's argv passthrough with its quotes stripped, which broke shell parsing. Passing the explicit `t` selector dodges whatever eask does to no-arg single-quoted forms. The bug only mattered once integration tests were `:slow` — before that, `test-all` overlapped fully with `test-unit` plus `test-integration`, so nothing actually depended on it working.
* build: add eask manifest and setup/compile/coverage targetsCraig Jennings2026-05-051-88/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I switched the test runner from `~/.emacs.d/elpa`-grep to eask. With this, `make setup` installs every dep into a project-local `.eask/`, so test runs don't depend on whatever's in my global elpa. It also lets us catch missing Package-Requires entries before MELPA submission. New targets: - `make setup` — runs `eask install-deps --dev` - `make compile` — byte-compiles chime.el and surfaces warnings that checkdoc and elisp-lint don't catch - `make coverage` — runs the unit suite under undercover and writes a simplecov JSON to `.coverage/simplecov.json` - `make test-all` — runs every test, including `:slow` tagged - `-include makefile-local` in both Makefiles, for per-machine knobs I added `ERT_FAST_SELECTOR` so `make test`, `test-unit`, `test-integration`, and `test-file` exclude tests tagged `:slow`. When we tag end-to-end integration tests as `:slow`, they'll stay out of the fast feedback loop until someone explicitly asks for them via `make test-all`. Eask treats CWD as its workspace. So all eask invocations now run from project root, with `(cd "tests/")' as the first `--eval' to restore Emacs's default-directory. That preserves the relative loads the existing test files and test-bootstrap.el rely on, without touching either. I updated `.gitignore` for `.eask/`, `.coverage/`, and the optional `makefile-local` files.
* Consolidate Makefiles and update TESTING.orgCraig Jennings2026-04-041-32/+43
| | | | | | Root Makefile now delegates to tests/Makefile. Fixed stale UNIT_TESTS/INTEGRATION_TESTS definitions, added test-name target, switched to per-file test execution for better isolation.
* changed repositoriesCraig Jennings2025-11-181-0/+244