Subject: Re: bug#51037: [PATCH] Make `print-level` & `print-length` customizable in ERT batch tests

From: Michael <[email-masked]>
Date: Fri, 08 Oct 2021 08:24:42 -0700

Lars Ingebrigtsen <[email-masked]> writes:

> Michael <[email-masked]> writes:
>
>> When running ERT tests in batch mode, the conservative values
>> chosen for `print-level` and `print-length` sometimes make it
>> difficult to see what exactly is wrong.  This patch introduces
>> two new variables (`ert-batch-print-level` &
>> `ert-batch-print-length`) that one can use to customize them;
>> e.g.
>>
>>    emacs -batch -l ert -l my-tests.el \
>>          --eval "(let ((ert-batch-print-level 10) \
>>                        (ert-batch-print-length 120)) \
>>                    (ert-run-tests-batch-and-exit))"
>
> Sounds like a good idea.
>
>> +MESSAGE-FN should normally be nil; it is used for automated
>> +self-tests and specify how to display messages."
>
> I don't understand this bit, though.  If you want to test how 
> this
> function outputs messages, you can just `cl-letf' like this:
>
> (cl-letf (((symbol-function 'message) ...

Good point. I simply carried the strategy over from that used to
unit test `ert-run-tests-interactively`. TBH I was unaware of
`cl-letf`, and there *is* this comment above
`ert-run-tests-interactively`:

    ;; Should OUTPUT-BUFFER-NAME and MESSAGE-FN really be 
    arguments here?
    ;; They are needed only for our automated self-tests at the 
    moment.
    ;; Or should there be some other mechanism?

Perhaps I should change *both* to just use `cl-letf`?

-- 
Michael <[email-masked]>