[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