summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic (Chun-Ju) Yang <victoryang@chromium.org>2014-02-06 16:45:28 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-02-06 19:27:18 +0000
commit798df2a6d077cb973cb60c5401d0ec037006fe9a (patch)
tree0c92b15cb6967d26b456ae99d9c716ca2b813e23
parent66eec4415a0cf8a74aa9dd26c957423b63681e6b (diff)
downloadchrome-ec-798df2a6d077cb973cb60c5401d0ec037006fe9a.tar.gz
Add presubmit check for unit test
This enforces that "make buildall" runs at least once after the last file change. TEST=Try to upload without running "make buildall" TEST=Change a file without re-running "make buildall", and try to upload. BUG=None BRANCH=None Change-Id: Ia4abb3c0e17cf4d559975574f398d74c7986c89f Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185116 Reviewed-by: Dave Parker <dparker@chromium.org>
-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