[PATCH] D14706: [lit] Implement support of per test timeout in lit.
Jonathan Roelofs via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 16 08:51:30 PST 2015
jroelofs added inline comments.
================
Comment at: utils/lit/tests/Inputs/per_test_timeout/slow.py:8
@@ +7,2 @@
+print("slow program")
+time.sleep(6)
----------------
delcypher wrote:
> jroelofs wrote:
> > The infinite loop testcase was actually useful to guarantee that the timeout detection & handling code isn't broken. With this testcase, it could be broken and we wouldn't notice (apart from the tests running a little slower).
> If the ``slow.py`` program doesn't cause a timeout then several tests will fail. If you replace ``time.sleep(6)`` with ``time.sleep(0)`` then run lit on the test cases you will see failures.
>
> ```
> python2 ~/dev/llvm-upstream/src/utils/lit/lit.py -v --debug tests/Inputs/per_test_timeout/
> ********************
> Testing Time: 0.41s
> ********************
> Failing Tests (3):
> per_test_timeout :: timeout_external.txt
> per_test_timeout :: timeout_internal.txt
> per_test_timeout :: timeout_internal_set_in_config.txt
>
> Expected Passes : 2
> Unexpected Failures: 3
>
> ```
>
> What you had before (an infinite loop and an ``XFAIL`` line) was not helpful because running the above command would **always** hang. One work around if you really want a test case with an infinite loop is to do some trickery with ``lit.cfg`` so that when we invoke it from the command line ``slow.py`` doesn't get detected but when we run lit inside lit it is detected.
I don't understand why "trickery" is needed in order to make the infinite loop testcase work. The test worked in the diff I uploaded to your llvm-dev thread about this...
http://reviews.llvm.org/D14706
More information about the llvm-commits
mailing list