summaryrefslogtreecommitdiff
path: root/tests/Makefile
blob: 1e8fc9daaaf140602e621d21bd372a4f2f3b55cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# 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$(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
TEST_BINS = $(addprefix ${BUILD_ROOT}/,$(TEST_NAMES))

TEST_LIB = ${BUILD_ROOT}/test.a
TEST_LIB_SRCS = rollback_index_mock.c 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) $(FWLIB)

all: $(TEST_BINS) ${EXTRA_TARGET}

${TEST_LIB}: ${TEST_LIB_OBJS}
	rm -f $@
	ar qc $@ $^

${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


ifneq (${RUNTESTS},)
EXTRA_TARGET = runtests
endif

# 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


runtests: genkeys runcgpttests runcryptotests runmisctests

# 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

-include ${ALL_DEPS}