This is in preparation for having multiple types of build. One of the future
builds will be a hstox build, another may be frama-c or some other static
analyser. It makes sense to split these up into multiple builds, because each of
them can take a while, and running them in parallel will speed things up. Also,
the hstox test coverage should be reported separately from the toxcore auto_test
coverage.
> increased the timeout for TCP tests because per @irungentoo the network on Travis-CI can be slow sometimes
> allowed groupchats test to restart on error until timeout This had to be done because current groupchats are fundamentally broken and 3/5 times they'll 'net-split' on connect
>> Drop group chat tests, add comment to the reason
> added some debugging information to TCP tests, and a #define to force IPV6 (Travis-CI only uses IPv4 on their containers) and decreased the itr interval
> Went crazy with timeouts for Tox network stuff on Travis. Tests on TCP will still randomly fail due to timeouts. I can't reproduce on any local system. So again per @irungentoo, Travis is slow, let's offer it a short bus.
sodium_init returns 1 when the library was already initialised. Toxcore code
wasn't prepared to handle sodium errors, so it thought it was an allocation
error.
This error is still not handled correctly. If crypto fails to initialise, it
will think it's an allocation error. Fixing this requires too many code changes,
so must be done later.
- We use coveralls.io to report on test coverage and avoid getting below a
certain threshold. The threshold is currently 60%, but we will be increasing
it when it stabilises.
- We use gcc/clang -ftest-coverage and gcov to measure C test coverage.
- We switched to container based Travis build infrastructure, which has the
advantage of faster boot times[1] (1-6s vs. 20-52s). The trusty beta supports
caching, but the longer boot times make it an unattractive target.
- We now need to build more dependencies ourselves and cache the result. We
still fetch what we can (currently opam, libvpx, and check) from apt.
[1] https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
Reduces the running time from about 8 minutes to about 5, as it uses
packaged libraries instead of building them. This is possible because
of the Ubuntu Trusty becoming available on Travis. The new check that
is in Trusty has different behaviour than the previously user version
of it -- it doesn't output the detailed result of tests. To fix this
we cat a file where this detailed result is stored.