-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve failure detection in llvm/test #1691
Comments
It turns out that the Tcl "exec" command is everything we need:
|
Sounds great. CAn you give an example of what the run lines will look like? |
They'll look identical (or very nearly identical) to what they are today. We can |
Here's a link to the exec command: |
will they support && ? |
Where that page says: Macintosh It is patently false. That may have been true of old Mac systems but not Mac OS |
&& is not supported, but then its not needed either. Every line will be checked for 0 return code, signals, suspended, posix errors, |
ok, so we can say the equiv of: llvm-as < %s | llc | grep abc and it's all good, right? |
Yes, exactly. It checks every line, every process. |
sounds awesome, when do we switch? ;-) |
As soon as I get it working .. most of the way there now. I think the last thing |
So, this patch: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070409/047501.html Yields these results on the Feature tests: Running /proj/llvm/llvm-2/test/Feature/dg.exp ...
of expected passes 45of unexpected failures 1make[1]: *** [check-local] Error 1 real 0m12.343s which is only just slightly faster than the original: Running /proj/llvm/llvm-2/test/Feature/dg.exp ...
of expected passes 46make[1]: Leaving directory `/proj/llvm/llvm-2/test' real 0m12.585s I'm not sure what's up with the one test that fails. For some reason it thinks I'll continue working on this tomorrow. |
This is working so well that I had to add an "ignore" script to explicitly To test this a little future, I'm going to convert a few directories and see how
|
A few other things I've noticed that need to be changed:
So, the question is, do these syntax changes mean death for this PR? Is it too I vote for the latter. |
I'm fine with syntax changes. Does this mean we'll have to use "grep find\ a\ thing" ? -Chris |
I'm not sure if that would work. OTOH, grep {find a thing} is easier to |
even better |
This has now been implemented with numerous patches. See: http://llvm.org/docs/TestingGuide.html#dgstructure for details on the new syntax for RUN: lines. All test cases needing conversion have been converted. |
Turns out that the && at the end of lines were causing some tests to mis report. This has now been corrected. |
mentioned in issue llvm/llvm-bugzilla-archive#1331 |
Extended Description
Currently we are doubling up our test scripts with things like:
; RUN: llvm-as < %s | opt -loop-rotate -disable-output &&
; RUN: llvm-as < %s | opt -loop-rotate | llvm-dis | not grep "[ .tmp224"
in order to ensure that any failures early in the pipeline are not causing false
positives simply because no output was generated. There are two issues here:
Correctness. If we had a mechanism that checked each member of a pipeline
for 0 return code, that would be preferable as the test case writer doesn't
have to think about that sort of thing happening. By having a mechanism that
does this automatically, additional test cases, not covered by the above
duplication would be made more robust.
Speed. This solution to the problem is coming at the expense of invoking the
same pipelines multiple times. While this isn't an issue now while the test
suite runs quickly, it will in due time cause issues. The test suite has
grown by over 1000 tests in the last year or so. Its likely to accellerate
that growth rate for some time to come.
This isn't a pressing need, just filing this so we don't forget about it.
Reid.
The text was updated successfully, but these errors were encountered: