summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.rules2
-rw-r--r--PRESUBMIT.cfg2
-rwxr-xr-xutil/presubmit_check.sh17
4 files changed, 22 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 1e7812abbb..9c5f02bad6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ private/
*.pyc
tags
cscope.out
+.tests-passed
diff --git a/Makefile.rules b/Makefile.rules
index 70b6e26147..8256b99106 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -67,6 +67,8 @@ targ_if_prog = $(if $(shell which $(1) 2>/dev/null),$(2),)
all: $(out)/$(PROJECT).bin utils
buildall: $(foreach b, $(boards), proj-$(b)) runtests
+ @touch .tests-passed
+
proj-%:
@echo "======= building $*"; \
$(MAKE) --no-print-directory BOARD=$* V=$(V)
diff --git a/PRESUBMIT.cfg b/PRESUBMIT.cfg
index 2e8cdb6618..d02e3f3703 100644
--- a/PRESUBMIT.cfg
+++ b/PRESUBMIT.cfg
@@ -4,3 +4,5 @@
# The indentation is checked by checkpatch not the python script
tab_check: false
+[Hook Scripts]
+hook0 = util/presubmit_check.sh 2>&1
diff --git a/util/presubmit_check.sh b/util/presubmit_check.sh
new file mode 100755
index 0000000000..220522083e
--- /dev/null
+++ b/util/presubmit_check.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+if [[ ! -e .tests-passed ]]; then
+ echo 'Unit tests have not passed. Please run "make buildall -j".'
+ exit 1
+fi
+changed=$(find ${PRESUBMIT_FILES} -newer .tests-passed)
+if [[ -n "${changed}" ]]; then
+ echo "Files have changed since last time unit tests passed:"
+ echo "${changed}" | sed -e 's/^/ /'
+ echo 'Please run "make buildall -j".'
+ exit 1
+fi