[PATCH 1/3] test: `notmuch-show-advance-and-archive' with invisible signature

Dmitry Kurochkin dmitry.kurochkin at gmail.com
Tue Jun 28 22:10:19 PDT 2011


On Wed, 29 Jun 2011 05:48:50 +0400, Dmitry Kurochkin <dmitry.kurochkin at gmail.com> wrote:
> Add Emacs test to check that `notmuch-show-advance-and-archive'
> works for the last message in thread with invisible signature.
> ---
> 
> This patch series fixes the bug reported by Sebastien in [1].  I
> was able to reproduce it and confirm that the second patch from
> this series fixes the problem.  Unfortunately, I can not explain
> why it fixes it.  The patch uses a cleaner approach for visible
> text search.  But the old approach should work fine as well.
> Apparently, it does not work when `invisible' property is not a
> single symbol but a list (which was changed in
> 95ef8da29439f2e79115c36ab4d2a80aef1a1462).  I suspect that it is
> an Emacs bug.  I plan to look at it later.
> 

Turns out that `point-invisible-p' is a function from notmuch-lib.el, I
did not realize that before.  It implements a custom visibility check
which is incomplete and does not work correctly when `invisible'
property is a list.  That is why the previous code (which used
`point-invisible-p') had the bug.  I sent another patch that removes
`point-invisible-p' function.

> Another issue is that the test does not demonstrate the bug.
> Again, I do not really know why.  It passes both before and after
> the fix.  Although if I run the test commands by hand I hit the
> bug.  I guess it has something to do with emacs daemon mode when
> the buffer is not visible.  I hope someone with a better elisp
> knowledge can tell what is going on and how to make the test
> work.
> 

Now it is clear where the bug was.  Remaining question is how to test
it.

Regards,
  Dmitry

> I believe patches 2 and 3 can be pushed after review even without
> a working test.
> 
> Regards,
>   Dmitry
> 
> [1] id:"8739j5rn2d.fsf at cern.ch"
> 
>  test/emacs |   12 ++++++++++++
>  1 files changed, 12 insertions(+), 0 deletions(-)
> 
> diff --git a/test/emacs b/test/emacs
> index e59de47..65a96a5 100755
> --- a/test/emacs
> +++ b/test/emacs
> @@ -347,4 +347,16 @@ test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae at mail.
>  	    (test-visible-output)'
>  test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-thread-with-hidden-messages
>  
> +test_begin_subtest 'notmuch-show-advance-and-archive with invisible signature'
> +message1='id:20091118010116.GC25380 at dottiness.seas.harvard.edu'
> +message2='id:1258491078-29658-1-git-send-email-dottedmag at dottedmag.net'
> +test_emacs "(notmuch-search \"$message1 or $message2\")
> +	    (notmuch-test-wait)
> +	    (notmuch-search-show-thread)
> +	    (notmuch-show-advance-and-archive)
> +	    (test-output)"
> +test_emacs "(notmuch-show \"$message2\")
> +	    (test-output \"EXPECTED\")"
> +test_expect_equal_file OUTPUT EXPECTED
> +
>  test_done
> -- 
> 1.7.5.4
> 


More information about the notmuch mailing list