diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2020-10-12 16:06:13 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-11-15 14:12:43 +0100 |
commit | acf5d78f342ae6ce535a3dcfb196b2143603d097 (patch) | |
tree | d4c8d9abed1a0a6ba50cb93330e9f0b7df71307b /ci | |
parent | 98d3863fa4d63f39aee510a2713c0586b65d40e8 (diff) | |
download | meson-acf5d78f342ae6ce535a3dcfb196b2143603d097.zip meson-acf5d78f342ae6ce535a3dcfb196b2143603d097.tar.gz meson-acf5d78f342ae6ce535a3dcfb196b2143603d097.tar.bz2 |
mtest: remove usage of executors
Rewrite the SingleTestRunner to use asyncio to manage subprocesses,
while still using subprocess.Popen to run them. Concurrency is
managed with an asyncio Semaphore; for simplicity (since this is
a temporary state) we create a new thread for each test that is run
instead of having a pool.
This already provides the main advantage of asyncio, which is better
control on cancellation; with the current code, KeyboardInterrupt
was never handled by the thread executor so the code that tried to handle
it in SingleTestRunner only worked for non-parallel tests. And
because executor futures cannot be cancelled, there was no way for
the user to kill a test that got stuck. Instead, without executors
^C exits "meson test" immediately. The next patch will improve things
even further, allowing a single test to be interrupted with ^C.
Diffstat (limited to 'ci')
0 files changed, 0 insertions, 0 deletions