[LLVMdev] Problem with regression tests using stderr

Dan Gohman djg at cray.com
Tue Nov 20 08:22:00 PST 2007

I was attempting to write a test that involves grepping though the
stderr produced by opt -analyze, but found that my test was passing
even before I fixed the bug I was writing the test for!

I found that this one-line sure-fail test:

; RUN: echo hi |& false

passes. I also tried 2>&1, because I've seen some tests do that,
though that doesn't appear to work in this context either. It didn't
seem to create a file nameed &1 though, as the LLVM test-writing
documentation says.

After some investigation, I believe the problem is due to the regexp
on this line in test/lib/llvm.exp:

      } elseif {[regexp {RUN: *([^&]+)(&&)?} $line match oneline suffix]} {

I don't understand what this is trying to do. What is intended by
the special handling of && here?

I found only one test that uses && on a RUN line,
test/CodeGen/X86/2007-07-03-GR64ToVR64.ll, and it's not clear to
me what it's doing there.


Dan Gohman, Cray Inc.

More information about the llvm-dev mailing list