PF4Public 0f037b2ee3 coverage dependency
coverage should not start until testboards unpacked
2023-08-12 23:56:21 +01:00

63 lines
2.1 KiB
Makefile

#
# tests/Makefile
#
# Copyright (C) 2016 Bernhard Nortmann <bernhard.nortmann@web.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
BOARDS_URL := https://github.com/linux-sunxi/sunxi-boards/archive/master.zip
BOARDS_DIR := sunxi-boards
check: check_all_fex coverage
# Conversion cycle (.fex -> .bin -> .fex) test for all sunxi-boards
check_all_fex: $(BOARDS_DIR)/README unify-fex
./test_all_fex.sh $(BOARDS_DIR)
coverage: $(BOARDS_DIR)/README
# Usage help / invocation with no args
../sunxi-fexc -? 2> /dev/null ; exit 0
# Improve code coverage for corner cases (e.g. erroneous parameters)
./test_fex2bin_corner_cases.sh
./test_bin2fex_corner_cases.sh
# Retrieve and extract sunxi-boards archive (containing all .fex)
$(BOARDS_DIR).zip:
curl -fLsS -o $@ $(BOARDS_URL)
$(BOARDS_DIR)/README: $(BOARDS_DIR).zip
@echo Extracting $< ...
unzip -q $<
mv sunxi-boards-master $(BOARDS_DIR)
touch -r $(BOARDS_DIR) $<
cat patches/*.patch | patch -p1
unify-fex: unify-fex.c
$(CC) -Wall -Werror -o $@ $<
clean:
rm -rf $(BOARDS_DIR).zip $(BOARDS_DIR) unify-fex
#
# Dedicated rule for Travis CI test of sunxi-boards. This assumes that the
# sunxi-tools source (archive) was extracted into a subdir below the working
# directory, meaning that BOARDS_DIR should be "../.."
#
sunxi-boards_CI: unify-fex
# compile sunxi-fexc, link bin2fex and fex2bin
make -C .. bin2fex fex2bin
# apply patches to BOARDS_DIR, ignore mismatches
cat patches/*.patch | patch --forward -r- -p2 -d $(BOARDS_DIR) || true
# and finally run the tests
./test_all_fex.sh $(BOARDS_DIR)