Subject: bug#24402: should-error doesn't catch all errors

From: [email-masked]
Date: Sun, 16 Jul 2017 20:46:02 -0400

Alex <[email-masked]> writes:

> Oddly enough, I can't reproduce this on master. I cloned a new copy, ran
> "./autogen.sh && ./configure && make -j4", then ran "make eieio-tests
> TEST_LOAD_EL=no" with no error. I cloned from 30444c695, then tried
> again with 7a0fb008. I also tried "make check-expensive TEST_LOAD_EL=no"
> and got only 2 errors (dom-tests and cl-lib-tests).
>
> Perhaps odder is that I can still reproduce your recipe in Bug#27718 in
> that same repository.

Uh, actually, now I'm getting the same results as you (i.e., make
eieio-tests TEST_LOAD_EL=no passes on master for me, though the #27718
test case does fail).  Perhaps I accidentally ran an eieio-tests.elc
file produced by a patched Emacs using a non-patched Emacs before?

>> I have a fix for the subr-tests failed, as for the others, I don't know
>> enough about the compilation process to untangle it yet.  I think we
>> should just leave the inline-function expansion part out for now, at
>> which point I believe your patch won't be making anything worse, so it
>> should be okay to install.
>
> Sounds good. It would be lucky if a fix to Bug#27718 also resolves the
> other inline function errors so that we could use the previous patch.
> Here's an updated patch with inline function excluded:

Okay, so the patch does make a couple more tests fail, but I think it's
actually an improvement since #27718 shows that the scenario was already
failing outside of ert-deftest, i.e., in this case your patch is making
code inside the test more like code outside the test.  We can just mark
those as expected failures when compiled.

I will merge to master in a few days, assuming there are no objections.