CI: Test scripts w. no external dependencies#2143
Conversation
Adds "scripts_nodep" input to run_tests script, which executes only tests for those Python scripts absent from the blacklist identifying those scripts with external software dependencies.
|
CI timing changes: Main culprits (at least when run locally) are |
|
A potential alternative solution would be to define a separate text file that contains only those script tests intended to be run as part of CI. So for instance only one variant of each |
|
It definitely makes sense to add scripts to CI. I feel only adding it for Mac could offer a good balance between test coverage and runtime. What is the reason for the large discrepancies between the platforms? Is that because they have different amounts of resources allocated? |
I had a look and the resources for each platform are the same. I believe those massive Windows Python runtimes are indicative of using "msys/python3", which uses POSIX emulation, rather than "mingw64/mingw-w64-x86_64-python3", which is native Windows python. I think we should be using the latter? |
|
Instead of additional tests files, how about deactivating non-essential standalone script tests stochastically for CI testing? This speeds up testing but we'd still eventually catch test failures. Something along the lines of |
Just to follow up on that: I'm not sure the python runtime should make all that much difference, the bulk of the work should be performed within the binaries. But more to the point, I had a go at checking the difference in performance on my Windows 10 laptop for some of these scripts between MSYS2 and WSL2 (which I've recently installed). This was done using this branch, and just timing the tests for using MSYS2:using WSL2:😮 not what I was expecting (are at least hoping for)! I was hoping WSL2 would bring performance improvements, not a 4x drop on the exact same hardware... I might run it again just to make sure, this is really weird. |
|
Wow... What happens if you benchmark dwi2fod between the two? |
|
https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig maybe you have to allocate all cores to wsl? |
|
OK, it looks like my custom WSL2 setup was probably to blame... I'd set it up to use the same home directory as the regular Windows one, using these instructions. If I revert to a vanilla WSL2 setup, the numbers are actually far more impressive: So it looks like WSL2 is a substantial improvement after all - as long as you don't mess with the setup... |
|
On the topic of WSL, a nice bonus is that |
|
Closing in facvor of #2154. |

Adds "
scripts_nodep" input torun_testsscript, which executes only tests for those Python scripts absent from the blacklist identifying those scripts with external software dependencies.Related to #2134, but seeking to integrate more regular testing of as many scripts as possible; testing of those scripts with external dependencies could potentially be done only for merges to
master. Will find out from the checks on this PR how much additional runtime is required.