GNU bug report logs -
#57216
29.0.50; [PATCH] Provide ERT explainers for Eshell test functions
Previous Next
Reported by: Jim Porter <jporterbugs <at> gmail.com>
Date: Sun, 14 Aug 2022 21:21:01 UTC
Severity: normal
Tags: patch
Found in version 29.0.50
Done: Jim Porter <jporterbugs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
It can be difficult to diagnose test failures in the Eshell ERT test
suite, since it doesn't print useful details like the command that was
executed. See bug#57129 for example.
Here are some patches to fix that. The failures now look like this:
----------------------------------------
(ert-test-failed
((should
(eshell-match-output regexp))
:form
(eshell-match-output "wrong")
:value nil :explanation
(mismatched-output
(command "echo $INSIDE_EMACS[, 1]\n")
(output "eshell\n")
(regexp "wrong"))))
----------------------------------------
(ert-test-failed
((should
(eshell-command-result--equal command
(eshell-test-command-result command)
result))
:form
(eshell-command-result--equal "echo $LINES" 22 2)
:value nil :explanation
(nonequal-result
(command "echo $LINES")
(result 22)
(expected 2))))
----------------------------------------
Most of the first two patches are purely-mechanical changes to update
function calls. The diffs ended up being pretty big, but I think it
improves matters. Let me know if I should do it differently (especially
for the commit message; I didn't see much benefit to listing *every*
test function I touched, but maybe I should do that?)
While I was testing these, I also found a couple real bugs with the
'eshell-command-result' function. This throws 'eshell-defer':
M-: (eshell-command-result "if {[ foo = foo ]} {echo hi}")
That's because 'eshell-do-eval' wasn't forwarding the SYNCHRONOUS-P
argument in a couple spots.
This is also wrong:
M-: (eshell-command-result "if (zerop 1) {echo yes} {echo no}")
=> nil
It should return "no".
I fixed these in the third patch. Maybe that could go in a separate bug,
but it's fairly closely related to this one.
[0001-Provide-ERT-explainer-for-eshell-match-command-outpu.patch (text/plain, attachment)]
[0002-Add-eshell-command-result-equal-with-an-ERT-explaine.patch (text/plain, attachment)]
[0003-Fix-non-interactive-use-of-conditionals-in-Eshell.patch (text/plain, attachment)]
This bug report was last modified 2 years and 279 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.