diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-05 11:11:29 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-05 11:11:29 -0500 |
| commit | 6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452 (patch) | |
| tree | 8432ea4903279f3aeb1eb6335b2ce9b5741ae7ee /tests/test-org-drill-determine-next-interval-sm5.el | |
| parent | 01ad14ab75d5d64aadd15af8fc0d1dd61e2ce4bd (diff) | |
| download | org-drill-6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452.tar.gz org-drill-6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452.zip | |
ci: drop Emacs 28.2 from matrix; skip cl-assert tests on Emacs 29
Two pragmatic changes after watching CI fail repeatedly:
CI matrix: dropped 28.2. Emacs 28 ships Org 9.5; Cask is supposed
to pull our declared org>=9.6 over the built-in but doesn't reliably
in this CI setup, and several test categories use APIs/behaviors
(cl-letf on signal-hook-function, eieio idioms, modern org-fold-*)
that don't quite work on 28. Practical floor is now Emacs 29
(ships Org 9.6 built-in). Matrix is 29.4 + snapshot.
Scheduler error tests: added skip-unless (>= emacs-major-version 30)
to the test-scheduler--should-cl-assert helper in both simple8 and
sm5 test files. ERT 29 installs an aggressive
signal-hook-function around the entire ert-deftest body that
intercepts every signal before any inner condition-case runs;
shadowing the hook locally doesn't help (verified across four
attempts). The eight cl-assert-precondition tests now run on
Emacs 30+ where ERT's hook leaves inner condition-case alone, and
skip on 29.x. All other tests still run on 29.4.
Locally green. Pushing to verify CI.
Diffstat (limited to 'tests/test-org-drill-determine-next-interval-sm5.el')
| -rw-r--r-- | tests/test-org-drill-determine-next-interval-sm5.el | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/tests/test-org-drill-determine-next-interval-sm5.el b/tests/test-org-drill-determine-next-interval-sm5.el index de476a4..a7c9a73 100644 --- a/tests/test-org-drill-determine-next-interval-sm5.el +++ b/tests/test-org-drill-determine-next-interval-sm5.el @@ -245,17 +245,18 @@ The SM5 floor is shared with SM2 via `org-drill-modify-e-factor'.") ;;; Error Cases - cl-assert violations (defmacro test-scheduler--should-cl-assert (&rest body) - "Assert BODY signals a cl-assertion-failed via condition-case. + "Assert BODY signals a cl-assertion-failed. -Mirrors the simple8 test file's helper. See its commentary for why -shadowing `signal-hook-function' is necessary on Emacs 29.4." - `(let ((caught - (let ((signal-hook-function nil)) +Mirrors the simple8 file's helper — see its commentary for the +ERT-29 signal-hook quirk that forces a `skip-unless' on Emacs <30." + `(progn + (skip-unless (>= emacs-major-version 30)) + (let ((caught (condition-case _err (progn ,@body 'no-error) - (cl-assertion-failed 'caught))))) - (unless (eq caught 'caught) - (ert-fail "expected cl-assertion-failed signal, got none")))) + (cl-assertion-failed 'caught)))) + (unless (eq caught 'caught) + (ert-fail "expected cl-assertion-failed signal, got none"))))) (ert-deftest test-org-drill-determine-next-interval-sm5-error-negative-n () "Error: n=-1 violates the (cl-assert (> n 0)) precondition." |
