aaron.ballman added a comment.

In D59523#1440238 <https://reviews.llvm.org/D59523#1440238>, @jfb wrote:

> In D59523#1440232 <https://reviews.llvm.org/D59523#1440232>, @aaronpuchert 
> wrote:
>
> > > It's less about the regressions and more about the kind of regressions 
> > > we're testing against.
> >
> > But the test also verifies that no diagnostics are omitted (`// 
> > expected-no-diagnostics`), so it isn't just a "this doesn't crash" test. 
> > Which is why I think it's a nice seed to build more systematic tests around 
> > it. I'd generally like to test this more systematically, but that isn't 
> > made easier if we're sprinkling the test cases over the code base.
>
>
> No, I wrote the test purely to check that the crash is gone. These tests 
> *require* a diagnostic check, or `// expected-no-diagnostics`, so I put the 
> later.


They only require `// expected-no-diagnostics` because you pass in `-verify` on 
the RUN line. That isn't needed to test the crashing regression, which may be 
part of what's causing confusion.

> Agreed that ObjC needs to be tested more systematically, but this patch isn't 
> doing this. It's fixing a crash, and adding a test to make sure the crash is 
> gone.
> 
>>> Basically, this file is here to prevent regressions.
>> 
>> Isn't every test about exactly that? That there was a similar bug in the 
>> past is at best informative, but not necessarily relevant. And if a 
>> functional test crashes, isn't that just as bad? I don't understand why the 
>> historical reason for a test needs to have an influence on where the test is 
>> placed. It makes much more sense to me to group tests by the code they test.
>> 
>> If there is a unit test for a class and you find a bug in it that makes it 
>> crash, would you write a complete new unit test? Or would you add a test 
>> case to the existing test? These files are our “poor man's unit test” for 
>> warnings.
> 
> This is very concrete: this specific code used to cause a crash. This test 
> has exactly this purpose, nothing more. What I'm doing is extremely normal 
> for LLVM.

Agreed, this is a normal practice for tests verifying that a crash no longer 
happens.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59523/new/

https://reviews.llvm.org/D59523



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to