blob: e97bbe115d089ed904d3fe20192af1ca40632159 [file] [log] [blame]
# Copyright (c) 2010 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.
INCLUDES += -I./include \
-I$(FWDIR)/lib/include \
-I$(FWDIR)/lib/cgptlib/include \
-I$(FWDIR)/lib/cryptolib/include \
-I$(FWDIR)/lib/tpm_lite/include \
-I$(HOSTDIR)/include
BUILD_ROOT = ${BUILD}/tests
TEST_NAMES = cgptlib_test \
rsa_padding_test \
rsa_verify_benchmark \
sha_benchmark \
sha_tests \
vboot_common_tests \
vboot_common2_tests \
vboot_common3_tests \
vboot_nvstorage_test
TEST_BINS = $(addprefix ${BUILD_ROOT}/,$(TEST_NAMES))
TEST_LIB = ${BUILD_ROOT}/test.a
TEST_LIB_SRCS = test_common.c timer_utils.c crc32_test.c
TEST_LIB_OBJS = $(TEST_LIB_SRCS:%.c=${BUILD_ROOT}/%.o)
ALL_DEPS = $(addsuffix .d,${TEST_BINS} ${TEST_LIB_OBJS})
CFLAGS += -MMD -MF $@.d
LIBS := ${TEST_LIB} $(HOSTLIB)
ifneq (${RUNTESTS},)
EXTRA_TARGET = runtests
endif
all: $(TEST_BINS) ${EXTRA_TARGET}
rbtest: $(BUILD_ROOT)/rollback_index_test
${TEST_LIB}: ${TEST_LIB_OBJS}
rm -f $@
ar qc $@ $^
${BUILD_ROOT}/rollback_index_test.o : rollback_index_test.c
$(CC) $(CFLAGS) -I/usr/include $(INCLUDES) -MMD -MF $@.d -c -o $@ $<
${BUILD_ROOT}/rollback_index_test: rollback_index_test.c ${HOSTLIB}
$(CC) $(CFLAGS) -I/usr/include $(INCLUDES) $< -o $@ \
-ltlcl ${HOSTLIB} -lcrypto -lrt
${BUILD_ROOT}/%.o : %.c
$(CC) $(CFLAGS) $(INCLUDES) -MMD -MF $@.d -c -o $@ $<
${BUILD_ROOT}/%: %.c ${LIBS}
$(CC) $(CFLAGS) $(INCLUDES) $< ${LIBS} -o $@ -lcrypto -lrt
# TODO: port these tests to new API, if not already eqivalent
# functionality in other tests
#
# big_firmware_tests
# firmware_image_tests
# firmware_rollback_tests
# firmware_splicing_tests
# firmware_verify_benchmark
# verify_firmware_fuzz_driver
#
# big_kernel_tests
# kernel_image_tests
# kernel_rollback_tests
# kernel_splicing_tests
# kernel_verify_benchmark
# verify_kernel_fuzz_driver
# Generate test keys
genkeys:
./gen_test_keys.sh
# Run cgpt tests
runcgpttests:
${BUILD_ROOT}/cgptlib_test
./run_cgpt_tests.sh ${BUILD}/cgpt/cgpt
# Run crypto tests
runcryptotests:
./run_rsa_tests.sh
${BUILD_ROOT}/sha_tests
./run_vboot_common_tests.sh
# Run other misc tests
runmisctests:
./run_vbutil_tests.sh
#This will exercise vbutil_kernel and vbutil_firmware
runfuzztests:
./gen_fuzz_test_cases.sh
# Run bmpblk_utility tests
runbmptests:
$(MAKE) BUILD=$(shell readlink -f ${BUILD}) -C bitmaps runtests
ALLTESTS=runcgpttests runcryptotests runmisctests runfuzztests runbmptests
runtests: genkeys ${ALLTESTS}
# TODO: tests to run when ported to new API
# ./run_image_verification_tests.sh
# # Splicing tests
# ${BUILD_ROOT}/firmware_splicing_tests
# ${BUILD_ROOT}/kernel_splicing_tests
# # Rollback Tests
# ${BUILD_ROOT}/firmware_rollback_tests
# ${BUILD_ROOT}/kernel_rollback_tests
install-rbtest: $(BUILD_ROOT)/rollback_index_test
mkdir -p $(DESTDIR)
cp -f $(BUILD_ROOT)/rollback_index_test $(DESTDIR)
-include ${ALL_DEPS}