The integration tests of the native backend currently reuse the structure of the other backends: they create a run that crashes, then another non-crashing run actually picks up the pieces and sends them.
But with the native backend's daemon, this is not how things work, because the daemon actually already sends during the first run. So instead of two runs of example, there should be one run, followed by a time-bounded wait on either the mock server's request log or the termination of the daemon process.
Only after either of these should assertions run. The current approach, emulated from the other backends, does not reflect the async nature and can easily end up sending too little during the expected run.
The integration tests of the native backend currently reuse the structure of the other backends: they create a run that crashes, then another non-crashing run actually picks up the pieces and sends them.
But with the native backend's daemon, this is not how things work, because the daemon actually already sends during the first run. So instead of two runs of
example, there should be one run, followed by a time-bounded wait on either the mock server's request log or the termination of the daemon process.Only after either of these should assertions run. The current approach, emulated from the other backends, does not reflect the async nature and can easily end up sending too little during the expected run.