summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile2
-rw-r--r--Makefile.inc5
-rw-r--r--payloads/libpayload/Makefile.inc9
-rw-r--r--util/testing/Makefile.inc80
5 files changed, 83 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore
index f61d9dd944..9fb9bd4234 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,6 +61,7 @@ site-local
*.pyc
*.sw[po]
/*.rom
+coreboot-builds*/
# Development friendly files
tags
diff --git a/Makefile b/Makefile
index ff9a6b81cf..343ec650f3 100644
--- a/Makefile
+++ b/Makefile
@@ -92,9 +92,7 @@ help_coreboot help::
@echo ' distclean - Remove build artifacts and config files'
@echo ' doxygen - Build doxygen documentation for coreboot'
@echo ' doxyplatform - Build doxygen documentation for the current platform'
- @echo ' what-jenkins-does - Run platform build tests (Use CPUS=# for more cores)'
@echo ' printall - print makefile info for debugging'
- @echo ' lint / lint-stable - run coreboot lint tools (all / minimal)'
@echo ' gitconfig - set up git to submit patches to coreboot'
@echo ' ctags / ctags-project - make ctags file for all of coreboot or current board'
@echo ' cscope / cscope-project - make cscope.out file for coreboot or current board'
diff --git a/Makefile.inc b/Makefile.inc
index 9decd65830..49344a6c74 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -75,7 +75,7 @@ files_added:: build_complete
#######################################################################
# our phony targets
-PHONY+= clean-abuild coreboot lint lint-stable build-dirs build_complete
+PHONY+= clean-abuild coreboot build-dirs build_complete
#######################################################################
# root source directories of coreboot
@@ -556,9 +556,6 @@ printcrt0s:
update:
dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
-lint lint-stable:
- util/lint/lint $@
-
gitconfig:
[ -d .git ]
mkdir -p .git/hooks
diff --git a/payloads/libpayload/Makefile.inc b/payloads/libpayload/Makefile.inc
index b88cd20ea1..7787762b43 100644
--- a/payloads/libpayload/Makefile.inc
+++ b/payloads/libpayload/Makefile.inc
@@ -147,3 +147,12 @@ junit.xml:
done
echo "</testsuite>" >> $@.tmp
mv $@.tmp $@
+
+test-configs:
+ for config in $(filter-out %.old,$(wildcard configs/*)); do \
+ $(MAKE) clean; \
+ cp "$$config" test_config; \
+ echo "*** Making libpayload config $$config ***"; \
+ $(MAKE) olddefconfig DOTCONFIG=test_config V=$(V) Q=$(Q) ; \
+ $(MAKE) V=$(V) Q=$(Q) CONFIG_LP_CCACHE=$(CONFIG_LP_CCACHE) DOTCONFIG=test_config; \
+ done
diff --git a/util/testing/Makefile.inc b/util/testing/Makefile.inc
index f5a4c5e6fc..160210b3e7 100644
--- a/util/testing/Makefile.inc
+++ b/util/testing/Makefile.inc
@@ -11,6 +11,21 @@
## GNU General Public License for more details.
##
+test-help help::
+ @echo '*** coreboot test targets ***'
+ @echo ' what-jenkins-does - Run platform build tests with junit output'
+ @echo ' lint / lint-stable - run coreboot lint tools (all / minimal)'
+ @echo ' test-basic - Run stardard build tests. All expected to pass.'
+ @echo ' test-lint - basic: Run stable and extended lint tests.'
+ @echo ' test-tools - basic: Tests a basic list of tools.'
+ @echo ' test-abuild - basic: Builds all platforms'
+ @echo ' test-payloads - basic: Builds internal payloads'
+ @echo ' test-cleanup - basic: Cleans coreboot directories'
+
+# junit.xml is a helper target to wrap builds that don't create junit.xml output
+# BLD = Subdirectory the build lives in - The name of the build
+# BLD_DIR = Top path from coreboot to the build subdirectory
+# MAKETARGET = target to build
junit.xml:
echo "Building $(BLD)"
echo '<?xml version="1.0" encoding="utf-8"?><testsuite>' > $@.tmp
@@ -35,16 +50,26 @@ junit.xml:
echo
TOOLLIST= \
- cbmem \
- ectool \
- futility \
- inteltool \
- intelvbttool \
- nvramtool \
- superiotool \
- viatool
+cbmem \
+ectool \
+futility \
+inteltool \
+intelvbttool \
+nvramtool \
+superiotool \
+viatool
+
+TEST_PAYLOADLIST_INTERNAL= \
+coreinfo \
+nvramcui
+
JENKINS_PAYLOAD?=none
+TEST_PAYLOAD?=$(JENKINS_PAYLOAD)
CPUS?=4
+
+lint lint-stable:
+ util/lint/lint $@
+
what-jenkins-does:
util/lint/lint lint-stable --junit
util/abuild/abuild -B -J $(if $(JENKINS_NOCCACHE),,-y) -c $(CPUS) -z -p $(JENKINS_PAYLOAD) -x -X $(top)/abuild-chromeos.xml
@@ -54,3 +79,42 @@ what-jenkins-does:
unset COREBOOT_BUILD_DIR;$(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=payloads/ BLD=nvramcui MFLAGS= MAKEFLAGS= MAKETARGET=all junit.xml
unset COREBOOT_BUILD_DIR;$(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=payloads/ BLD=coreinfo MFLAGS= MAKEFLAGS= MAKETARGET=defaultbuild junit.xml
$(MAKE) CPUS=$(CPUS) V=$(V) Q=$(Q) BLD_DIR=util/ BLD=romcc MFLAGS= MAKEFLAGS= MAKETARGET=test junit.xml
+
+test-basic: test-lint test-tools test-abuild test-payloads test-cleanup
+
+test-lint:
+ util/lint/lint lint-stable
+ util/lint/lint-015-final-newlines
+
+test-abuild:
+ rm -rf coreboot-builds-chromeos coreboot-builds
+ export COREBOOT_BUILD_DIR=coreboot-builds-chromeos; util/abuild/abuild -B -e $(if $(TEST_NOCCACHE),,-y) -c $(CPUS) -p $(TEST_PAYLOAD) -x
+ util/abuild/abuild -B -e $(if $(TEST_NOCCACHE),,-y) -c $(CPUS) -p $(TEST_PAYLOAD)
+
+test-payloads:
+ $(MAKE) -C payloads/libpayload test-configs -j $(CPUS) V=$(V) Q=$(Q) MFLAGS= MAKEFLAGS= $(if $(TEST_NOCCACHE),,CONFIG_LP_CCACHE=y)
+ export MFLAGS=;export MAKEFLAGS=; \
+ $(foreach payload, $(TEST_PAYLOADLIST_INTERNAL), \
+ echo "*** Making payload $(payload) ***"; \
+ $(MAKE) -C payloads/$(payload) distclean ;\
+ $(MAKE) $(payload) -j $(CPUS) V=$(V) Q=$(Q)\
+ || exit 1; )
+
+test-tools:
+ @echo "Build testing $(TOOLLIST)"
+ $(foreach tool, $(TOOLLIST), $(MAKE) -C util/$(tool) clean ; )
+ $(MAKE) -C util/romcc clean
+ $(foreach tool, $(TOOLLIST), echo "Building $(tool)";export MFLAGS= ;export MAKEFLAGS= ;$(MAKE) -C util/$(tool) all V=$(V) Q=$(Q) || exit 1; )
+ echo "Building romcc"
+ $(MAKE) -C util/romcc all test -j $(CPUS) V=$(V) Q=$(Q)
+
+test-cleanup:
+ rm -rf coreboot-builds coreboot-builds-chromeos
+ $(MAKE) clean
+ $(MAKE) distclean
+ $(foreach tool, $(TOOLLIST), $(MAKE) -C util/$(tool) clean ; )
+ $(MAKE) -C util/romcc clean
+
+.PHONY: test-basic test-lint test-abuild test-payloads
+.PHONY: test-tools test-cleanup test-help
+.PHONY: lint lint-stable what-jenkins-does