Summary:
We've had a number of compatibility issues with the arcanist
based test suite, so this is an effort to run them using the
python unittest infrastructure.
This new structure allows us to create a single temporary dir
and to create a dir per test case to track the temporary files
and dirs created during the test. This is beneficial both from
a post-mortem perspective if a test fails, but also because
the paths that show up in the watchman logs will now be easily
recognizable as being associated with a given test.
This will also help us manage the windows integration tests
(https://github.com/facebook/watchman/issues/19#issuecomment-125054948)
a bit more sanely; a source of errors in the php tests is that
deleting directory trees can fail if a handle still references
any part of it, and there is often a noticeable lag where we
can hit this state and error out. By deferring the deletes
until our process end, we should minimize this issue.
I've ported a single integration test to demonstrate what this
looks like, the rest will have to be a series of diffs for
easier review.
Test Plan: `make integration` or `./runtests.py`
Reviewers: sid0
Differential Revision: https://reviews.facebook.net/D43137