blob: 4a67ae295315465cc1bf2fb09f0fef556b2d37d7 [file] [log] [blame]
# Copyright (c) 2012 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.
BUILD_DIR=build
DESTDIR=$(BUILD_DIR)/image
TARGET_DIR=/usr/local/factory
FACTORY=$(DESTDIR)/$(TARGET_DIR)
PYLINTRC=../../../chromite/pylintrc
PYLINT_OPTIONS=\
--rcfile=$(PYLINTRC) \
--ignored-classes=Event,Obj \
--disable=R0921 \
--generated-members=test_info,AndReturn,AndRaise
LINT_BLACKLIST=\
py/argparse.py \
py/gooftool/vblock.py \
py/goofy/invocation.py \
py/goofy/connection_manager.py \
py/goofy/event_log_watcher.py \
py/goofy/event_log_watcher_unittest.py \
py/goofy/prespawner.py \
py/goofy/test_environment.py \
py/goofy/updater.py \
py/goofy/web_socket_manager.py \
py/test/event.py \
py/test/gooftools.py \
py/test/leds.py \
py/test/line_item_check.py \
py/test/media_util.py \
py/test/media_util_unittest.py \
py/test/pytests/execpython.py \
py/test/shopfloor.py \
py/test/state_machine.py \
py/test/state.py \
py/test/state_unittest.py \
py/test/task.py \
py/test/ui.py \
py/test/unicode_to_string.py \
py/test/unicode_to_string_unittest.py \
py/test/utils.py \
py/test/utils_unittest.py
# Temporary changes for broken code. TODO(tammo, itspeter): Remove.
LINT_BLACKLIST += \
py/gooftool/gooftool.py \
py/hwdb/hwid_tool.py \
py/test/pytests/probe_cellular_info.py
LINT_FILES=$(filter-out $(LINT_BLACKLIST), \
$(shell find py -name '*.py' -type f | sort))
UNITTESTS=\
py/event_log_unittest.py \
py/goofy/charge_manager_unittest.py \
py/goofy/event_log_watcher_unittest.py \
py/goofy/goofy_rpc_unittest.py \
py/goofy/goofy_unittest.py \
py/goofy/system_unittest.py \
py/goofy/time_sanitizer_unittest.py \
py/goofy/updater_unittest.py \
py/test/factory_unittest.py \
py/test/state_unittest.py \
py/test/registration_codes_unittest.py \
py/test/unicode_to_string_unittest.py \
py/test/utils_unittest.py \
py/utils/net_utils_unittest.py \
py/utils/process_utils_unittest.py \
py/hwdb/hwid_unittest.py
# TODO(sheckylin): Get py/test/media_util_unittest.py working.
# TODO(jsalz): remove the hard-coded path once the icedtea6-bin
# package is fixed and /usr/bin/java works
# (https://bugs.gentoo.org/416341)
default:
env PATH=/opt/icedtea6-bin-1.6.2/bin:$(PATH) \
$(MAKE) -C py/goofy/static \
$(if $(CLOSURE_LIB_ARCHIVE), \
CLOSURE_LIB_ARCHIVE="$(CLOSURE_LIB_ARCHIVE)",)
install:
mkdir -p $(FACTORY)
cp -ar bin misc py py_pkg sh test_lists $(FACTORY)
ln -sf bin/gooftool bin/edid bin/hwid_tool ${FACTORY}
mkdir -m755 -p ${DESTDIR}/var/log
mkdir -m755 -p $(addprefix ${DESTDIR}/var/factory/,log state tests)
ln -sf $(addprefix ../factory/log/,factory.log console.log) ${DESTDIR}/var/log
lint:
env PYTHONPATH=py_pkg pylint $(PYLINT_OPTIONS) $(LINT_FILES)
clean:
rm -rf $(BUILD_DIR)
GREEN=\033[22;32m
RED=\033[22;31m
WHITE=\033[22;0m
test:
@total=0; good=0; \
logdir=/tmp/test.logs.$$(date +%Y%m%d_%H%M%S); \
mkdir $$logdir; \
echo "Test logs will be written to $$logdir"; \
echo; \
for f in $(UNITTESTS); do \
total=$$(expr $$total + 1); \
echo -ne "*** RUN $$f"; \
log=$$logdir/$$(basename $$f).log; \
if $$f >$$log 2>&1; then \
good=$$(expr $$good + 1); \
echo -e "\r$(GREEN)*** PASS $$f$(WHITE)"; \
else \
echo -e "\r$(RED)*** FAIL $$f$(WHITE)"; \
echo " (log in $$log)"; \
fi; \
done; \
echo; \
echo -e "$(GREEN)$$good/$$total tests passed.$(WHITE)"; \
if [ $$good != $$total ]; then \
echo -e "$(RED)$$(expr $$total - $$good)/$$total tests failed.$(WHITE)"; \
false; \
fi