mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
3f2ee9f1ab
Quality of progress bar and ETA in lit has always bothered me. For example, given `./bin/llvm-lit /repositories/llvm-project/clang/test/CodeGen* -sv` at 1%, it says it will take 10 more minutes, at 25%, it says it will take 1.25 more minutes, at 50%, it says it will take 30 more seconds, and in the end finishes with `Testing Time: 39.49s`. That's rather wildly unprecise. Currently, it assumes that every single test will take the same amount of time to run on average. This is is a somewhat reasonable approximation overall, but it is quite clearly imprecise, especially in the beginning. But, we can do better now, after D98179! We now know how long the tests took to run last time. So we can build a better ETA predictor, by accumulating the time spent already, the time that will be spent on the tests for which we know the previous time, and for the test for which we don't have previous time, again use the average time over the tests for which we know current or previous run time. It would be better to use median, but i'm wary of the cost that may incur. Now, on **first** run of `./bin/llvm-lit /repositories/llvm-project/clang/test/CodeGen* -sv` at 10%, it says it will take 30 seconds, at 25%, it says it will take 50 more seconds, at 50%, it says it will take 27 more seconds, and in the end finishes with `Testing Time: 41.64s`. That's pretty reasonable. And on second run of `./bin/llvm-lit /repositories/llvm-project/clang/test/CodeGen* -sv` at 1%, it says it will take 1 minutes, at 25%, it says it will take 30 more seconds, at 50%, it says it will take 19 more seconds, and in the end finishes with `Testing Time: 39.49s`. That's amazing i think! I think people will love this :) Reviewed By: yln Differential Revision: https://reviews.llvm.org/D99073 |
||
---|---|---|
.. | ||
examples | ||
lit | ||
tests | ||
utils | ||
CMakeLists.txt | ||
LICENSE.TXT | ||
lit.py | ||
MANIFEST.in | ||
README.txt | ||
setup.py |
=============================== lit - A Software Testing Tool =============================== lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures. lit is designed to be a lightweight testing tool with as simple a user interface as possible. ===================== Contributing to lit ===================== Please browse the Test Suite > lit category in LLVM's Bugzilla for ideas on what to work on. Before submitting patches, run the test suite to ensure nothing has regressed: # From within your LLVM source directory. utils/lit/lit.py \ --path /path/to/your/llvm/build/bin \ utils/lit/tests Note that lit's tests depend on 'not' and 'FileCheck', LLVM utilities. You will need to have built LLVM tools in order to run lit's test suite successfully. You'll also want to confirm that lit continues to work when testing LLVM. Follow the instructions in http://llvm.org/docs/TestingGuide.html to run the regression test suite: make check-llvm And be sure to run the llvm-lit wrapper script as well: /path/to/your/llvm/build/bin/llvm-lit utils/lit/tests Finally, make sure lit works when installed via setuptools: python utils/lit/setup.py install lit --path /path/to/your/llvm/build/bin utils/lit/tests