emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Fix test-org-element/cache


From: Ihor Radchenko
Subject: [PATCH] Fix test-org-element/cache
Date: Sat, 15 May 2021 19:38:34 +0800

Hi,

I encountered a bug in test-org-element/cache. The test creates the
following Org file with table and runs (org-element-at-point) at the
beginning of the second line. The expectation in the test is that we are
at the table row, while in reality these are two distinct tables (the
"ab" line is a table within "item" list entry):

#+begin_center
P0

- item

  P1
  | a | b |
| c | d |
#+end_center

I tested with emacs -Q (with no org-element-cache enabled). The return
value of (org-element-at-point) is (table (...)). In the test (before
inserting "item") the same point has different element:

#+begin_center
P0



  P1
  | a | b |
| c | d |
#+end_center

Now, org-element-at-point (correctly) returns (table-row (...)).

The master version of the test assumed that element would not change
after modification (wrong). Yet, the test was passing with
org-element-use-cache enabled (it should have not been).

The current patch is fixing the test. Though I am not sure if it should
be applied right now. The correct test will fail and org-element also
need to be fixed. I do have a fix for org-element, but it is quite
complex, not fully ready yet, involves other features, and needs to be
discussed carefully. So, I am only submitting the patch for the test for
now.

Best,
Ihor

>From b9da1e2c4faeb5545fb43641209dd6eca80f5d51 Mon Sep 17 00:00:00 2001
Message-Id: 
<b9da1e2c4faeb5545fb43641209dd6eca80f5d51.1621077736.git.yantar92@gmail.com>
From: Ihor Radchenko <yantar92@gmail.com>
Date: Sat, 15 May 2021 19:19:09 +0800
Subject: [PATCH] Fix test-org-element/cache "Preserve local structures when
 re-parenting."

* testing/lisp/test-org-element.el (test-org-element/cache): Add
spaces to make the "abcd" table a single table.  The old version uses
example org text with two tables and was passing because of another
bug in org-element-cache.  Testing the old version with
org-element-use-cache set to nil would yield error, while it should
not.
---
 testing/lisp/test-org-element.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 4f108754c..28e9ecd12 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -3770,7 +3770,7 @@ (ert-deftest test-org-element/cache ()
    (eq 'table
        (let ((org-element-use-cache t))
         (org-test-with-temp-text
-            "#+begin_center\nP0\n\n<point>\n\n  P1\n  | a | b |\n| c | d 
|\n#+end_center"
+            "#+begin_center\nP0\n\n<point>\n\n  P1\n  | a | b |\n  | c | d 
|\n#+end_center"
           (save-excursion (search-forward "| c |") (org-element-at-point))
           (insert "- item")
           (search-forward "| c |")
-- 
2.26.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]