There are three main aspects handled by this class:
Implementation notes: Active waiting is employed when waiting for the process to complete. This is considered acceptable since the expected usage pattern is to spawn the process, execute a set of tests, and then finally asking the process to shut down. Waiting for the process to complete is the last step, and a process typically lives only for a short period of time anyway (often only for seconds, seldom more than a few minutes).
Forcibly destroying processes that live too long makes the test run continue even when facing inter-process communication hangs. The prime example is when both the client and the server are waiting for the other party to send data. Since the timeout is very high this feature is intended to avoid automated test runs from hanging indefinitely, for instance due to environmental issues affecting the process.
|
|
|
|