Subject: bug#66782: 29.1; ERT tests report test redefined depending on loading sequence

From: Xiyue Deng <[email-masked]>
Date: Mon, 30 Oct 2023 13:47:53 -0700

Mattias Engdegård <[email-masked]> writes:

> 29 okt. 2023 kl. 22.53 skrev Xiyue Deng <[email-masked]>:
>
>> As far as I know, there is no practical use for a test case to depend on
>> another test case in any language I worked with as a test case provides
>> no reusable component.  On the other hand, there are alternatives that
>> makes more sense to do what they (e.g. lsp-mode) are doing.  Again, IMHO
>> I think it makes sense for ERT not to support it or to even forbid it.
>> Doing this also avoids such misleading error message I was reporting,
>> which got triggered depending on the loading sequence which may make
>> test suites flaky (as the loading sequence is not deterministic).
>
> I don't think ERT can forbid anyone from loading in the same .el file multiple times because it's none of its business. Or did you have something else in mind?
>

It's not that loading the same .el multiple times that caused this
error, but loading a module with `ert-deftest' and both .el modules are
passed to batch ert processing which is common practice.  But see below.

> All in all, I'm not sure there is anything that we can do in Emacs right now that would help, but if you have any concrete suggestions, do tell.
>

I understand if upstream don't want to complicate `require' logic too
much.  However I wonder whether it's OK to add warning if a required
module has `ert-deftest' in it, so that it can help people identify that
a `Test "foo" redefined' error is due to requiring other module instead
of an actual duplicated test name.  How does this sound?

-- 
Xiyue Deng