GNU bug report logs -
#74090
31.0.50; Problems with dabbrev-expand
Previous Next
Reported by: Stephen Berman <stephen.berman <at> gmx.net>
Date: Tue, 29 Oct 2024 17:07:02 UTC
Severity: normal
Found in version 31.0.50
Done: Stephen Berman <stephen.berman <at> gmx.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On Mon, 02 Dec 2024 09:33:51 +0200 Juri Linkov <juri <at> linkov.net> wrote:
>> I've added a test but I'm somewhat dissatisfied with it. I wanted to
>> essentially reproduce the behavior I see with the patch, described
>> above. However, after killing buffer "foo", the message about no
>> further expansion is from a user-error in dabbrev-expand, and on hitting
>> this in the test run, the test immediately finishes. So I used
>> should-error with :type 'user-error and the test succeeds, but I cannot
>> test for the final buffer content nor the message displayed by
>> user-error. If anyone has an idea how to do that or otherwise improve
>> the test, please chime in.
>
> Probably 'condition-case' could help to catch a user-error.
> Or maybe better to set a buffer-local or let-bind 'command-error-function'
> like e.g. in 'minibuffer-error-initialize'.
>
> Then you can let-bind 'set-message-function' to catch a message
> to check it (but I don't remember if the error calls the message function).
>
> OTOH, I don't understand why the test immediately finishes after 'should-error'?
> There are many tests that call 'should-error' sequentially like:
>
> (ert-deftest abbrev-table-empty-p-test ()
> (should-error (abbrev-table-empty-p 42))
> (should-error (abbrev-table-empty-p "aoeu"))
> (should-error (abbrev-table-empty-p '()))
> (should-error (abbrev-table-empty-p []))
>
> And indeed implementation of 'should-error' already has 'condition-case'.
Thanks very much for the feedback. I was wrong about the test
immediately finishing after `should-error'; I guess I misread or
misunderstood the output of the batch run. Additionally, there was a
typo in the test of the final buffer content, which caused it to fail,
and that probably confused me further. As for testing the error
message, I overlooked that `should-error' returns an error description
containing the message, so that seems the simplest way to do it. With
these changes the test succeeds in batch runs and I think now better
reflects the user experience with manual input, so I went ahead and
pushed the fix (commit 6bca138d60e to emacs-30). If you agree, feel
free to close the bug again (assuming it needs to be reclosed, since you
unarchived it); otherwise, if you see other problems with the test,
please let me know.
Steve Berman
This bug report was last modified 230 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.