aboutsummaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-10-12 16:06:13 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2020-11-15 14:12:43 +0100
commitacf5d78f342ae6ce535a3dcfb196b2143603d097 (patch)
treed4c8d9abed1a0a6ba50cb93330e9f0b7df71307b /ci
parent98d3863fa4d63f39aee510a2713c0586b65d40e8 (diff)
downloadmeson-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