Some platforms don't have valgrind support, and sometimes you simply might
not want to use valgrind. But at present, dtc, or more specifically its
testsuite, won't compile without valgrind because we use the valgrind
client interface in some places to improve our testing and suppress false
positives.
This adds some Makefile detection to correctly handle the case where
valgrind is not available.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
libfdt is never supposed to access memory outside the the blob, or outside
the sub-blocks within it, even if the blob is badly corrupted.
We can leverage valgrind's client requests to do better testing of this.
This adds a vg_prepare_blob() function which marks just the valid parts of
an fdt blob as properly initialized, explicitly marking the rest as
uninitialized. This means valgrind should catch any bad accesses.
We add a call to vg_prepare_blob() to load_blob() so that lots of the
existing testcases will benefit from the extra checking.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
I've recently signed up dtc for Coverity Scan coverage. This adds magic
to the .travis.yml file to submit builds to Coverity for analysis.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
To make sure the Makefile behaves in both cases, make Travis matrix builds
with and without swig installed.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This adds the .travis.yml file allowing for dtc building and testing in
the Travis Continuous Integration system.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>