Add junit.xml code to top Makefile.inc instead of utils

Instead of adding code to generate the junit.xml file for jenkins to
each of the util makefiles, add it once to the top level Makefile.inc.

Create a list of tools to run the test on.
Add nvramtool and inteltool to the list of utilities tested.

Note that the util builds depend on implicit rules, so MFLAGS and
MAKEFLAGS have to be cleared to get the builds to work.

Change-Id: Id7ee5ea41ce3bf4a40fb50942ae785bb838fa639
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: http://review.coreboot.org/11910
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Martin Roth 2015-10-15 14:33:31 -06:00 committed by Patrick Georgi
parent ee09d9c658
commit de9adebb10
1 changed files with 20 additions and 1 deletions

View File

@ -681,6 +681,25 @@ board_id-type := raw
$(obj)/board_id:
printf $(CONFIG_BOARD_ID_STRING) > $@
junit.xml:
echo '<?xml version="1.0" encoding="utf-8"?><testsuite>' > $@.tmp
$(MAKE) -C "util/$(UTIL)" distclean > /dev/null 2>&1
echo "<testcase classname='$(UTIL)' name='$(UTIL)'>" >> $@.tmp
$(MAKE) -C "util/$(UTIL)" >> $@.tmp.2 2>&1 && type="system-out" || type="failure"; \
if [ "$$type" = "failure" ]; then \
echo "<failure type='buildFailed'>" >> $@.tmp; \
else \
echo "<$$type>" >> $@.tmp; \
fi; \
echo '<![CDATA[' >> $@.tmp; \
cat $@.tmp.2 >> $@.tmp; \
echo "]]></$$type>" >>$@.tmp
rm -f $@.tmp.2
echo "</testcase>" >> $@.tmp
echo "</testsuite>" >> $@.tmp
mv $@.tmp "util/$(UTIL)/$@"
TOOLLIST=cbmem nvramtool inteltool
JENKINS_PAYLOAD?=none
CPUS?=4
what-jenkins-does:
@ -688,4 +707,4 @@ what-jenkins-does:
util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) -x -X $(top)/abuild-chromeos.xml
util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD)
(cd payloads/libpayload; unset COREBOOT_BUILD_DIR; $(MAKE) $(if $(JENKINS_NOCCACHE),,CONFIG_LP_CCACHE=y) V=$(V) Q=$(Q) junit.xml)
$(MAKE) V=$(V) Q=$(Q) -C util/cbmem junit.xml
$(foreach tool, $(TOOLLIST), $(MAKE) V=$(V) Q=$(Q) UTIL="$(tool)" MFLAGS= MAKEFLAGS= junit.xml; )