blob: 5aeeb54d6ea8dfa267d00046ce1c6cb4f00d825f [file] [log] [blame]
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
# -*-Makefile-*-
SECVAR_TEST_DIR = libstb/secvar/test
#SUBDIRS = $(SECVAR_TEST_DIR)
SECVAR_TEST = $(patsubst %.c, %, $(wildcard $(SECVAR_TEST_DIR)/secvar-test-*.c))
HOSTCFLAGS+=-I . -I include -I libstb/tss2 -I libstb/tss2/ibmtpm20tss/utils
HOSTCFLAGS += -I$(SRC)/$(LIBSTB_DIR)/crypto/mbedtls/include
# Needed because x86 and POWER disagree on the type for uint64_t, causes printf issues
HOSTCFLAGS+= -Wno-format
# we want to test for leaks too:
SECVAR_VALGRIND := $(VALGRIND) --leak-check=full
.PHONY : secvar-check
secvar-check: $(SECVAR_TEST:%=%-check) $(SECVAR_TEST_NOSTUB:%=%-check)
.PHONY : secvar-coverage
secvar-coverage: $(SECVAR_TEST:%=%-gcov-run) $(SECVAR_TEST_NOSTUB:%=%-gcov-run)
check: secvar-check
coverage: secvar-coverage
# TODO: create pnor image for only tests that need it
$(SECVAR_TEST:%=%-gcov-run) : %-run: %
@dd if=/dev/zero of=secboot.img bs=128k count=1 2> /dev/null
$(call QTEST, TEST-COVERAGE ,$< , $<)
@$(RM) -f secboot.img
$(SECVAR_TEST:%=%-check) : %-check: %
@dd if=/dev/zero of=secboot.img bs=128k count=1 2> /dev/null
$(call QTEST, RUN-TEST ,$(SECVAR_VALGRIND) $<, $<)
@$(RM) -f secboot.img
HOST_MBEDTLS_OBJS=$(MBEDTLS_OBJS:%.o=$(CRYPTO_DIR)/%.host.o)
HOST_MBEDTLS_CFLAGS=-I$(SRC)/$(LIBSTB_DIR)/crypto -DMBEDTLS_CONFIG_FILE='<mbedtls-config.h>'
HOST_MBEDTLS_CFLAGS+= -Wno-unused-function -Wno-suggest-attribute=const
%.host.o: %.c
$(call Q, HOSTCC , $(HOSTCC) $(HOSTCFLAGS) $(HOST_MBEDTLS_CFLAGS) -O0 -g -c -o $@ $<, $<)
$(SECVAR_TEST) : core/test/stubs.o
$(SECVAR_TEST) : % : %.c $(HOST_MBEDTLS_OBJS)
$(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) $(HOST_MBEDTLS_CFLAGS) -O0 -g -I include -I . -I libfdt -o $@ $< $(HOST_MBEDTLS_OBJS) core/test/stubs.o, $<)
$(SECVAR_TEST:%=%-gcov): %-gcov : %.c % $(HOST_MBEDTLS_OBJS)
$(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) $(HOSTGCOVCFLAGS) $(HOST_MBEDTLS_CFLAGS) -I include -I . -I libfdt -lgcov -o $@ $< $(HOST_MBEDTLS_OBJS) core/test/stubs.o, $<)
-include $(wildcard libstb/secvar/test/*.d)
clean: secvar-test-clean
secvar-test-clean:
$(RM) -f libstb/secvar/test/*.[od] $(SECVAR_TEST) $(SECVAR_TEST:%=%-gcov)
$(RM) -f libstb/secvar/test/*.gcda libstb/secvar/test/*.gcno
$(RM) -f secboot.img