Re: Providing more precise "excess errors" message in DejaGnu
Iain Sandoe <[email protected]> Thu, 28 Aug 2025 16:27:07 +0100
| Newsgroups | gmane.comp.gcc.devel,gmane.comp.sysutils.dejagnu.general |
|---|---|
| Message-ID | <[email protected]> |
> On 28 Aug 2025, at 16:10, Jeff Law via Gcc <[email protected]> wrote: >=20 >=20 >=20 > On 8/28/25 8:09 AM, Richard Earnshaw (lists) wrote: >> On 28/08/2025 15:01, Iain Sandoe wrote: >>>=20 >>>=20 >>>> On 28 Aug 2025, at 14:36, Jeff Law via Gcc <[email protected]> wrote: >>>>=20 >>>>=20 >>>>=20 >>>> On 8/28/25 5:42 AM, Richard Biener via Gcc wrote: >>>>> On Thu, Aug 28, 2025 at 1:12=E2=80=AFPM Rainer Orth via Gcc = <[email protected]> wrote: >>>>>>=20 >>>>>> Hi Sam, >>>>>>=20 >>>>>>> When a test fails with 'excess errors', there's often only one = actual >>>>>>> error (an excess "(error|warning|note):") and it'd be nice to = not have >>>>>>> to dig in the .log files to fish that out. >>>>>>=20 >>>>>> I think such a move would be a bad mistake. Consider ICEs where = you >>>>>> have something like >>>>>>=20 >>>>>> FAIL: gcc.c-torture/compile/pr35318.c -O0 (test for excess = errors) >>>>>> Excess errors: >>>>>> = /vol/gcc/src/hg/master/local/gcc/testsuite/gcc.c-torture/compile/pr35318.c= :9:1: error: unrecognizable insn: >>>>>> (insn 13 25 26 2 (parallel [ >>>>>> (set (reg:DF 10 %o2 [orig:112 x ] [112]) >>>>>> (asm_operands/v:DF ("") ("=3Dr,r") 0 [ >>>>>> (reg:SI 11 %o3 [orig:112 x+4 ] [112]) >>>>>> (mem/c:DF (plus:SI (reg/f:SI 30 %fp) >>>>>> (const_int -24 = [0xffffffffffffffe8])) [3 %sfp+-24 S8 A64]) >>>>>> [and many more lines...] >>>>>>=20 >>>>>> This would clutter the output beyond recognition, especially if = this is >>>>>> a torture test which is run at several optimization options. >>>>>>=20 >>>>>> Excess errors, like all others, always require further = investigation. >>>>>> In my experience, digging the full error messages from the .log = files is >>>>>> usually the smallest part of that. You often even have to rerun = the >>>>>> compilation manually to also get the parts that are filtered out = by the >>>>>> prune procs. >>>>> I find the classification this would provide useful, like I like = the >>>>> (internal compiler error) classification we already have. I would >>>>> of course not duplicate all of th eabove message but only >>>>> '(unrecognizable insn)' in the above case. >>>> It's not the only consideration, but keep in mind that such output = is not stable and will cause some headaches with scripting that compares = two summary files. >>>=20 >>> This is something that I think we want to tackle anyway .. >>>>=20 >>>> Even with the bit of instability to the line number in the ICE = message, I do find the ICE classification useful as well. >>>=20 >>> =E2=80=A6 the classification is useful, but the false positive = =E2=80=9Cnew fail / old fail went away=E2=80=9D pairs are a real = nuiscance .. hopefully we can have some brainstorming @cauldron about = ways to deal with this (e.g. fuzzy matching or some smart way to discard = the twinkling line numbers). >>>=20 >> Well really, the compare-tests script should report duplicate results = as a problem as well, since >> PASS: abcd >> ... >> PASS: abcd >> is just a dup pass/fail waiting to happen. > Yup. A duplicate testname should be reported. These cause major = headaches if one passes, but the other fails -- it looks like a = regression to the comparison scripting we have. >=20 > Getting to the point where every test has a unique name would be good = on many levels. I can't help but think back to QMTest which tried to = solve the enumeration problem along with others. I wasn't too = supportive at the time, but in retrospect, that was probably a mistake. FWIW I was (and still am) about to volunteer to start a BoF on improving = the testsuite output (with the infra we currently have) - there are some = concrete ideas - but it probably needs some brainstorming too. This is = distinct from any BoF on improving test coverage or =E2=80=9CCI=E2=80=9D = in general =E2=80=A6 seems like there should be some interest in such a = discussion. Iain >=20 > jeff