When using clang, this will create a race condition between
clang/gcc builds. Coveralls will take the first one. As GCC and clang
are counting line coverage differently, coveralls regularly fails.
To assert static objects, we either have to add a method into the
object under test itself and recompile on a test run with the activated test
method (but also recompile after tests, so that method is gone on
release builds).
Alternatively we can include the whole .c file in our test
infrastructure and save the object in the test directory. So there's no
necessity to clean it up prior to a release build and it's contained
away.
This requires, that the test folder isn't excluded in coveralls.
Add the necessary compiler flags to the Makefile to actually make
coverage reports available locally, too.
The coverage files have to get cleaned every time before the test gets
run. Otherwise, it would sum up the coverage over multiple test runs.
Coveralls defaulted to using gcov for all builds even when using clang
in which case it should have used llvm-cov. Fix this by specifying
different coveralls commands for each compiler.
Additionally, move the coverage to commands to the after_success section
to avoid sending coverage data when the build failed.
Indentation in travis.yml was inconsistent, update it to consistently
use 2 spaces.
I considered using 4 spaces to be more consistent with the rest of the
project but it looks too spaced out and doesn't suit YAML in my opinion.
Since we only use sudo for installing packages, start using the apt
travis addon for the installation in order to allow container-based
builds to be used for testing dunst which should theoretically have a
faster boot time.
Change the behaviour of travis to only notify if the build status
changes. The previous behaviour which was notifying for every build
regardless of status added a lot of unnecessary noise to the IRC
channel.
Remove xext and xft as a dependency since they are not currently used
and probably haven't been used a while.
Also remove freetype2 from the pkg-config list, while it is required by
pangocairo it should be included from the pkg-config --cflags call.