mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
16384599a8
Summary: This allows code that is being exercised under async_unit to call into code that expects a Tokio 0.2 environment (e.g. 0.2 timers). Unfortunately, this requires turning off LSAN for the async_unit tests, since it looks like LSAN and Tokio 0.2 don't work very well together, resulting in LSAN reporting leaked memory for some TLS structures that were initialized by tokio-preview (regardless of whether the Runtime is being dropped): https://fb.workplace.com/groups/rust.language/permalink/3249964938385432/ Considering async_unit is effectively only used in Mononoke, and Mononoke already turns off LSAN in tests for precisely this reason ... it's probably reasonable to do the same here. The main body of changes here is also about updating the majority of our changes to stop calling wait(), and use this new async unit everywhere. This is effectively a pretty big batch conversion of all of our tests to use async fns instead of the former approaches. I've also updated a substantial number of utility functions to be async fns. A few notable changes here: - Some pushrebase tests were pretty flaky — the race they look for isn't deterministic. I added some actual waiting (using pushrebase hooks) to make it more deterministic. This is kinda copy pasted from the globalrev hook (where I had introduced this first), but this will do for now. - The multiplexblob tests don't work at all with new futures, because they call `poll()` all over the place. I've updated them to new futures, which required a bit of reworking. - I took out a couple tests in async unit that were broken anyway. Reviewed By: StanislavGlebik Differential Revision: D19902539 fbshipit-source-id: 352b4a531ef5fa855114c1dd8bb4d70ed967dd55 |
||
---|---|---|
.. | ||
schemas | ||
src | ||
tests/src |