[Skiboot] [PATCH] docs: add boot coverage report
Stewart Smith
stewart at linux.ibm.com
Mon Jul 22 16:54:11 AEST 2019
Signed-off-by: Stewart Smith <stewart at linux.ibm.com>
---
doc/ghpages-skeleton/index.html | 1 +
opal-ci/Dockerfile-fedora30 | 2 ++
opal-ci/build-docs.sh | 5 +++++
test/Makefile.check | 2 +-
test/make-boot-coverage-report.sh | 10 ++++++++--
5 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/doc/ghpages-skeleton/index.html b/doc/ghpages-skeleton/index.html
index ea5ed8ab927b..6ae31b625f2a 100644
--- a/doc/ghpages-skeleton/index.html
+++ b/doc/ghpages-skeleton/index.html
@@ -12,6 +12,7 @@
<ul>
<li><a href="doc/index.html">Skiboot Documentation</a></li>
<li><a href="coverage-report/">gcov coverage report for unittests</a></li>
+<li><a href="boot-coverage-report/">gcov coverage report for booting (simulators)</a></li>
</ul>
</body>
</html>
diff --git a/opal-ci/Dockerfile-fedora30 b/opal-ci/Dockerfile-fedora30
index 17ba79bc952a..753ae7a4a995 100644
--- a/opal-ci/Dockerfile-fedora30
+++ b/opal-ci/Dockerfile-fedora30
@@ -1,6 +1,8 @@
FROM fedora:30
RUN dnf -y update
RUN dnf -y install --allowerasing wget curl xterm gcc git xz make diffutils findutils expect valgrind valgrind-devel ccache dtc openssl-devel gcc-powerpc64-linux-gnu
+RUN dnf -y install --allowerasing python3-dnf-plugins-core
+RUN dnf -y builddep qemu
# for building documentation
RUN dnf -y install python-pip
# for GCOV coverage reports (need testing due to https://bugzilla.redhat.com/show_bug.cgi?id=1668843 )
diff --git a/opal-ci/build-docs.sh b/opal-ci/build-docs.sh
index e7cc87c9b503..66cc13f76529 100755
--- a/opal-ci/build-docs.sh
+++ b/opal-ci/build-docs.sh
@@ -13,11 +13,16 @@ git clone --depth=1 -b v1.4.4 https://git.kernel.org/pub/scm/utils/dtc/dtc.git
(cd dtc; make -j${MAKE_J})
export PATH=`pwd`/dtc:$PATH
+(cd opal-ci; ./build-qemu-powernv.sh)
+export QEMU_BIN=$(pwd)/opal-ci/qemu/ppc64-softmmu/qemu-system-ppc64
+
make -j${MAKE_J} SKIBOOT_GCOV=1 coverage-report
+make SKIBOOT_GCOV=1 boot-coverage-report
pip install -r doc/requirements.txt
(cd doc; make html)
cp -r doc/ghpages-skeleton doc/_build/ghpages
mv coverage-report doc/_build/ghpages/
+mv boot-coverage-report doc/_build/ghpages/
mv doc/_build/html doc/_build/ghpages/doc
diff --git a/test/Makefile.check b/test/Makefile.check
index c2137252b9b7..3a27bc1fcf7e 100644
--- a/test/Makefile.check
+++ b/test/Makefile.check
@@ -17,7 +17,7 @@ boot-check-%: skiboot.lid skiboot.map
boot-tests: boot-check $(OP_BUILD_BOOT_CHECK:%=boot-check-%)
boot-coverage-report: boot-tests extract-gcov skiboot.map all-boot-hardware
- $(call Q, BOOT TEST , CROSS=$(CROSS) BOOT_TESTS="hello_world boot_test ${OP_BUILD_BOOT_CHECK} ${FSP_GCOV_MACHINES}" ./test/make-boot-coverage-report.sh, $@)
+ $(call Q, BOOT TEST , CROSS="$(CROSS)" BOOT_TESTS="hello_world boot_test ${OP_BUILD_BOOT_CHECK} ${FSP_GCOV_MACHINES}" ./test/make-boot-coverage-report.sh, $@)
boot-fsp-hardware-%: skiboot.lid skiboot.map
$(call Q, BOOT TEST , ./external/boot-tests/boot_test.sh -v -p -b fsp -t $(@:boot-fsp-hardware-%=%) -1 skiboot.lid, $@)
diff --git a/test/make-boot-coverage-report.sh b/test/make-boot-coverage-report.sh
index 210880ee62e5..2ed9cf5f417d 100755
--- a/test/make-boot-coverage-report.sh
+++ b/test/make-boot-coverage-report.sh
@@ -6,9 +6,11 @@ SKIBOOT_GCOV_ADDR=$(perl -e "printf '0x%x', 0x30000000 + 0x$(grep gcov_info_list
LCOV_INFO_FILES=""
+CROSS=$(echo ${CROSS} | sed -e 's/ccache //')
+
function process_dump {
./extract-gcov $1 $SKIBOOT_GCOV_ADDR
- lcov -q -b . -d . -c -o $2 --gcov-tool ${CROSS}gcov
+ lcov -q -b . -d . -c -o $2 --gcov-tool "${CROSS}gcov"
LCOV_INFO_FILES="$LCOV_INFO_FILES -a $2"
find .|grep '\.gcda$'|xargs rm -f
}
@@ -25,11 +27,15 @@ for i in $BOOT_TESTS; do
fi
done
+for f in $EXT_GCOV_DUMPS; do
+ process_dump $f skiboot-$(basename $f).info
+done
+
if [ -z "$LCOV_INFO_FILES" ]; then
echo "ERROR: no lcov files found"
exit 1;
fi
-lcov -q -b . -d . --gcov-tool ${CROSS}gcov -o skiboot-boot.info $LCOV_INFO_FILES
+lcov -q -b . -d . --gcov-tool "${CROSS}gcov" -o skiboot-boot.info $LCOV_INFO_FILES
genhtml -o boot-coverage-report skiboot-boot.info
--
2.21.0
More information about the Skiboot
mailing list