Hello,
I'm wanting to run the test suite on emacs 28 to verify the patches I submit.
I noticed we have a single test failure. Wondering if it was because emacs 28
uses text-properties for folding instead of overlays I tried customizing
`org-fold-core-style' on a modern emacs and was able to reproduce the issue!
See attached patch for how to reproduce the issue on modern emacs (or
simply run the test suite on emacs 28).
Here are the results from when I ran it:
--8<---------------cut here---------------start------------->8---
buffer-string: #("* Heading 1 and extra heading text
Text here" 0 2 (face org-level-1) 2 11 (face org-level-1) 11 34
(isearch-open-invisible-temporary org-fold-core--isearch-show-temporary
isearch-open-invisible org-fold-core--isearch-show
org-fold--spec-org-fold-outline-606422786380868199 org-fold-outline) 34 44
(isearch-open-invisible-temporary org-fold-core--isearch-show-temporary
isearch-open-invisible org-fold-core--isearch-show
org-fold--spec-org-fold-outline-606422786380868199 org-fold-outline))
Test test-org-fold/re-hide-edits-inside-fold backtrace:
ert-fail(((should-not (org-invisible-p)) :form (org-invisible-p) :va
(if (not (unwind-protect (setq value-15632 (apply fn-15630 args-1563
(let (form-description-15634) (if (not (unwind-protect (setq value-1
(let ((value-15632 'ert-form-evaluation-aborted-15633)) (let (form-d
(let* ((fn-15630 #'org-invisible-p) (args-15631 (condition-case err
(progn (org-mode) (let ((point (string-match "<point>" inside-text))
(unwind-protect (progn (org-mode) (let ((point (string-match "<point
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
(let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
(let ((inside-text (if (stringp "* Heading 1<point>\nText here") "*
(let ((org-fold-core-style 'text-properties)) (let ((inside-text (if
#f(lambda () [t] (let ((inside-text (if ... "<point>* Heading 1\nTex
#f(compiled-function () #<bytecode -0x10179991f0a1c10a>)()
handler-bind-1(#f(compiled-function () #<bytecode -0x10179991f0a1c10
ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
ert-run-test(#s(ert-test :name test-org-fold/re-hide-edits-inside-fo
ert-run-or-rerun-test(#s(ert--stats :selector "\\(org\\|ob\\|ox\\)"
ert-run-tests("\\(org\\|ob\\|ox\\)" #f(compiled-function (event-type
ert-run-tests-batch("\\(org\\|ob\\|ox\\)")
ert-run-tests-batch-and-exit("\\(org\\|ob\\|ox\\)")
(let ((org-id-track-globally t) (org-test-selector (if org-test-sele
org-test-run-batch-tests("\\(org\\|ob\\|ox\\)")
eval((org-test-run-batch-tests org-test-select-re) t)
command-line-1(("--eval" "(setq vc-handled-backends nil org-startup-
command-line()
normal-top-level()
Test test-org-fold/re-hide-edits-inside-fold condition:
(ert-test-failed
((should-not (org-invisible-p)) :form (org-invisible-p) :value 2))
FAILED 808/1247 test-org-fold/re-hide-edits-inside-fold (0.003642 sec) at
../lisp/test-org-fold.el:546
--8<---------------cut here---------------end--------------->8---
In case you're wondering, the tests pass just fine on emacs 29 :)
I still have yet to investigate the test infrastructure or CI systems
seriously. I found the build failures mailing list but it doesn't seem
to show emacs 28 as failing. Is there a build success mailing list I
can double check?
Thanks,
Morgan
>From b0199c40dd69185280656d43fb52c296b4f80037 Mon Sep 17 00:00:00 2001
From: Morgan Smith <[email protected]>
Date: Sat, 11 Oct 2025 22:03:15 -0400
Subject: [PATCH] make test-org-fold/re-hide-edits-inside-fold fail
---
testing/lisp/test-org-fold.el | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/testing/lisp/test-org-fold.el b/testing/lisp/test-org-fold.el
index 809738f6c..4a35516fb 100644
--- a/testing/lisp/test-org-fold.el
+++ b/testing/lisp/test-org-fold.el
@@ -552,13 +552,15 @@ test-org-fold/re-hide-edits-inside-fold
(org-set-property "TEST" "1")
(re-search-forward "TEST")
(should (org-invisible-p)))
- (org-test-with-temp-text
- "* Heading 1<point>
+ (let ((org-fold-core-style 'text-properties))
+ (org-test-with-temp-text
+ "* Heading 1<point>
Text here"
- (org-overview)
- (insert " and extra heading text")
- (re-search-backward "heading")
- (should-not (org-invisible-p)))
+ (org-overview)
+ (insert " and extra heading text")
+ (re-search-backward "heading")
+ ;; (message "buffer-string: %S" (buffer-string))
+ (should-not (org-invisible-p))))
(org-test-with-temp-text
"* Heading 1
Text<point> here"
--
2.51.0