You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After the discussion with @cbatten on #204 about address sanitizer, I went on to test my allegations since it's been a few releases since I haven't checked that particular synergy.
It turns out that the introduction of the new client/server code broke it. In particular, this bit reports the test success (or failure), but this happens while the worker is still alive -- and while an exit called in the test is going to trigger the death event, and fail the test, Address Sanitizer and Valgrind on the other hand exit with a non-zero exit status after the main has done executing, which is well after the success or failure of the test has been reported and printed.
The incorrect condition came from the change of semantics in the runner's protocol: before the refactor, the worker process was the test itself. Now, the runner conceptually supports workers that may run more than one test.
I think the best fix for that is to simply restrict the procotol to only accept one test per process, and then handle the reporting after the worker exits. Additional tests can always be run as sub-tests of the process "root" test.
The text was updated successfully, but these errors were encountered:
Yes, this is the same issue. It used to work before the changes to the i/o layer, as the final exit status was used as a final override on the success failure of the test. Moving the actual test status report after the process exit should restore that behaviour.
After the discussion with @cbatten on #204 about address sanitizer, I went on to test my allegations since it's been a few releases since I haven't checked that particular synergy.
It turns out that the introduction of the new client/server code broke it. In particular, this bit reports the test success (or failure), but this happens while the worker is still alive -- and while an
exit
called in the test is going to trigger the death event, and fail the test, Address Sanitizer and Valgrind on the other hand exit with a non-zero exit status after the main has done executing, which is well after the success or failure of the test has been reported and printed.The incorrect condition came from the change of semantics in the runner's protocol: before the refactor, the worker process was the test itself. Now, the runner conceptually supports workers that may run more than one test.
I think the best fix for that is to simply restrict the procotol to only accept one test per process, and then handle the reporting after the worker exits. Additional tests can always be run as sub-tests of the process "root" test.
The text was updated successfully, but these errors were encountered: