* support multiple cleanup functions
* comment on the expected order
* add boilerplate
* poll while we wait for the test subprocess to setup
* use a tmp file to sychronize the two test processes
this should avoid the data race of reading the subprocess's stdout
* don't make this a breaking change
* fix lint issues