blob: 91dee971a205dbc69dc04a74cbb5a008d1a7dfd4 [file] [log] [blame]
Pascal Brandc639ac82015-07-02 08:53:34 +02001ifneq ($O,)
2 out-dir := $O
3else
4 # If no build folder has been specified, then create all build files in
5 # the current directory under a folder named out.
6 out-dir := $(CURDIR)/out
7endif
8
9ifneq ($V,1)
10 q := @
11else
12 q :=
13endif
14
15.PHONY: all
16all: xtest ta
17
18.PHONY: xtest
19xtest:
20 $(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
21 q=$(q) \
22 O=$(out-dir)/xtest \
23 $@
24
25.PHONY: ta
26ta:
27 $(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \
28 q=$(q) \
29 O=$(out-dir)/ta \
30 $@
31
32.PHONY: clean
33clean:
34 $(q)$(MAKE) -C host/xtest O=$(out-dir)/xtest q=$(q) $@
35 $(q)$(MAKE) -C ta O=$(out-dir)/ta q=$(q) $@
36
37.PHONY: patch
38patch:
39ifeq ($(CFG_GP_TESTSUITE_ENABLE),y)
40CFG_GP_API?=1.0
Pascal Brand30826812015-09-17 13:07:24 +020041CFG_GP_XSL_PACKAGE_PATH?=$(CURDIR)/package/testsuite/global_platform/api_1.0/GP_XSL_TEE_Initial_Configuration-Test_Suite_v1_0_0-2014-12-03-STM
Pascal Brandd69d40c2015-09-17 14:37:41 +020042
43ifeq "$(wildcard $(CFG_GP_XSL_PACKAGE_PATH) )" ""
44$(error CFG_GP_XSL_PACKAGE_PATH must contain the xsl package)
45endif
46
47ifeq "$(wildcard $(CFG_GP_PACKAGE_PATH) )" ""
48$(error CFG_GP_PACKAGE_PATH must contain the xml package from GP)
49endif
50
51ifeq "$(wildcard /usr/include/openssl )" ""
52$(error openssl must be installed)
53endif
54
55# Note that only TEE_Initial_Configuration-Test_Suite_v1_1_0_4-2014_11_07 is supported
56
57GP_XTEST_OUT_DIR=$(CURDIR)/host/xtest
58GP_XTEST_IN_DIR=${GP_XTEST_OUT_DIR}/global_platform/${CFG_GP_API}
59GP_USERTA_DIR=$(CURDIR)/ta
60
61define patch-file
62 @if [ ! -e ${1} ]; then \
63 echo "Error: File to patch is unknown: $1"; \
64 return 1; \
65 fi
66 @if [ ! -e ${2} ]; then \
67 echo "Error: Patch to apply is unknown: $2"; \
68 return 1; \
69 fi
70 @if [ ! -e ${1}.orig ]; then \
71 patch -N -b ${1} < ${2}; \
72 else \
73 echo "Warning: Patch already applied on `basename $1`"; \
74 fi
75endef
76
77# openssl .h file installation
78forgpdir=${CURDIR}/host/xtest/for_gp
79patch-openssl:
80 $(q)mkdir -p ${forgpdir}/include/openssl ${forgpdir}/lib
81 $(q)[ -d /usr/include/x86_64-linux-gnu/openssl ] && cp -r /usr/include/x86_64-linux-gnu/openssl ${forgpdir}/include
82 $(q)cp /usr/include/openssl/*.h $f ${forgpdir}/include/openssl
83
84define mv-package
85 @if [ -d ${1} ]; then \
86 mv ${1} ${CFG_GP_PACKAGE_PATH}/packages ;\
87 fi
88endef
89
90define patch-xalan
91 $(q)rm -f ${GP_XTEST_OUT_DIR}/${3} ${GP_XTEST_OUT_DIR}/${3}.orig
92 $(q)xalan -in ${GP_XTEST_IN_DIR}/${1} -xsl ${GP_XTEST_IN_DIR}/${2} -out ${GP_XTEST_OUT_DIR}/${3}
93endef
94
95# Generate host files
96define patch-cp-ta
97 $(q)rm -rf $(GP_USERTA_DIR)/${3}
98 $(q)mkdir -p $(GP_USERTA_DIR)/${3}
99 $(q)cp -p $(CFG_GP_PACKAGE_PATH)/${1}/* $(GP_USERTA_DIR)/${3}
100 $(q)cp -p $(CFG_GP_XSL_PACKAGE_PATH)/${2}/* $(GP_USERTA_DIR)/${3}
101endef
102
103patch-generate-host: patch-package
104 @echo "INFO: Generate host tests"
105 $(q) mkdir -p ${GP_XTEST_IN_DIR} ${GP_XTEST_IN_DIR}
106 $(q)find ${CFG_GP_PACKAGE_PATH}/packages -type f -name "*.xml" -exec cp -p {} ${GP_XTEST_IN_DIR} \;
107 $(q)find ${CFG_GP_XSL_PACKAGE_PATH}/packages -type f -name "*.xsl" -exec cp -p {} ${GP_XTEST_IN_DIR} \;
108 $(call patch-xalan,TEE.xml,adbg_case_declare.xsl,adbg_case_declare.h)
109 $(call patch-xalan,TEE.xml,adbg_entry_declare.xsl,adbg_entry_declare.h)
110 $(call patch-xalan,TEE.xml,TEE.xsl,xtest_7000.c)
111 $(call patch-xalan,TEE_DataStorage_API.xml,TEE_DataStorage_API.xsl,xtest_7500.c)
112 $(call patch-xalan,TEE_Internal_API.xml,TEE_Internal_API.xsl,xtest_8000.c)
113 $(call patch-xalan,TEE_TimeArithm_API.xml,TEE_TimeArithm_API.xsl,xtest_8500.c)
114 $(call patch-xalan,TEE_Crypto_API.xml,TEE_Crypto_API.xsl,xtest_9000.c)
115 @echo "INFO: Patch host tests"
116 # $(q)sed -i '752 c\ xtest_tee_deinit();\n' ${GP_XTEST_OUT_DIR}/xtest_7000.c
117 # $(q)sed -i '1076 c\ xtest_tee_deinit();\n' ${GP_XTEST_OUT_DIR}/xtest_8000.c
118 # $(q)sed -i '2549 c\ xtest_tee_deinit();\n' ${GP_XTEST_OUT_DIR}/xtest_8500.c
119 # $(q)sed -i '246 c\ xtest_tee_deinit();\n' ${GP_XTEST_OUT_DIR}/xtest_9000.c
120 $(call patch-file,host/xtest/xtest_9000.c,${CFG_GP_XSL_PACKAGE_PATH}/host/xtest/xtest_9000.c.patch)
121
122patch-generate-ta: patch-package
123 @echo "INFO: Generate TA"
124 $(call patch-cp-ta,TTAs/TTA_Arithmetical/TTA_Arithmetical/code_files,TTAs/TTA_Arithmetical/code_files,GP_TTA_Arithmetical)
125 $(call patch-cp-ta,TTAs/TTA_DS/TTA_DS/code_files,TTAs/TTA_DS/code_files,GP_TTA_DS)
126 $(call patch-cp-ta,TTAs/TTA_ClientAPI/TTA_answerErrorTo_Invoke/code_files,TTAs/TTA_ClientAPI/TTA_answerErrorTo_Invoke/code_files,GP_TTA_answerErrorTo_Invoke)
127 $(call patch-cp-ta,TTAs/TTA_ClientAPI/TTA_check_OpenSession_with_4_parameters/code_files,TTAs/TTA_ClientAPI/TTA_check_OpenSession_with_4_parameters/code_files,GP_TTA_check_OpenSession_with_4_parameters)
128 $(q) cp $(CFG_GP_PACKAGE_PATH)/TTAs/TTA_ClientAPI/ta_check_OpenSession_with_4_parameters/code_files/TTA_check_OpenSession_with_4_parameters_protocol.h $(GP_USERTA_DIR)/GP_TTA_check_OpenSession_with_4_parameters
129 $(call patch-cp-ta,TTAs/TTA_ClientAPI/TTA_answerErrorTo_OpenSession/code_files,TTAs/TTA_ClientAPI/TTA_answerErrorTo_OpenSession/code_files,GP_TTA_answerErrorTo_OpenSession)
130 $(call patch-cp-ta,TTAs/TTA_ClientAPI/TTA_testingClientAPI/code_files,TTAs/TTA_ClientAPI/TTA_testingClientAPI/code_files,GP_TTA_testingClientAPI)
131 $(call patch-cp-ta,TTAs/TTA_ClientAPI/TTA_answerSuccessTo_OpenSession_Invoke/code_files,TTAs/TTA_ClientAPI/TTA_answerSuccessTo_OpenSession_Invoke/code_files,GP_TTA_answerSuccessTo_OpenSession_Invoke)
132 $(call patch-cp-ta,TTAs/TTA_Crypto/TTA_Crypto/code_files,TTAs/TTA_Crypto/code_files,GP_TTA_Crypto)
133 $(call patch-cp-ta,TTAs/TTA_Time/TTA_Time/code_files,TTAs/TTA_Time/code_files,GP_TTA_Time)
134 $(call patch-cp-ta,TTAs/TTA_TCF/TTA_TCF_SingleInstanceTA/code_files,TTAs/TTA_TCF/TTA_TCF_SingleInstanceTA/code_files,GP_TTA_TCF_SingleInstanceTA)
135 $(call patch-cp-ta,TTAs/TTA_TCF/TTA_TCF_ICA/code_files,TTAs/TTA_TCF/TTA_TCF_ICA/code_files,GP_TTA_TCF_ICA)
136 $(call patch-cp-ta,TTAs/TTA_TCF/TTA_TCF_MultipleInstanceTA/code_files,TTAs/TTA_TCF/TTA_TCF_MultipleInstanceTA/code_files,GP_TTA_TCF_MultipleInstanceTA)
137 $(call patch-cp-ta,TTAs/TTA_TCF/TTA_TCF_ICA2/code_files,TTAs/TTA_TCF/TTA_TCF_ICA2/code_files,GP_TTA_TCF_ICA2)
138 $(call patch-cp-ta,TTAs/TTA_TCF/TTA_TCF/code_files,TTAs/TTA_TCF/TTA_TCF/code_files,GP_TTA_TCF)
139
140# Patch the GP package
141patch-package:
142 @echo "INFO: Patch provided tests"
143 $(q)mkdir -p ${CFG_GP_PACKAGE_PATH}/packages
144 $(call mv-package,${CFG_GP_PACKAGE_PATH}/ClientAPI)
145 $(call mv-package,${CFG_GP_PACKAGE_PATH}/Crypto)
146 $(call mv-package,${CFG_GP_PACKAGE_PATH}/DataStorage)
147 $(call mv-package,${CFG_GP_PACKAGE_PATH}/Time_Arithmetical)
148 $(call mv-package,${CFG_GP_PACKAGE_PATH}/TrustedCoreFw)
149 $(call patch-file,${CFG_GP_PACKAGE_PATH}/packages/ClientAPI/xmlStable/TEE.xml,${CFG_GP_XSL_PACKAGE_PATH}/packages/ClientAPI/xmlpatch/v1_1_0_4-2014_11_07/TEE.xml.patch)
150 $(call patch-file,${CFG_GP_PACKAGE_PATH}/packages/Crypto/xmlStable/TEE_Crypto_API.xml,${CFG_GP_XSL_PACKAGE_PATH}/packages/Crypto/xmlpatch/v1_1_0_4-2014_11_07/TEE_Crypto_API.xml.patch)
151 $(call patch-file,${CFG_GP_PACKAGE_PATH}/packages/DataStorage/xmlStable/TEE_DataStorage_API.xml,${CFG_GP_XSL_PACKAGE_PATH}/packages/DataStorage/xmlpatch/v1_1_0_4-2014_11_07/TEE_DataStorage_API.xml.patch)
152 $(call patch-file,${CFG_GP_PACKAGE_PATH}/packages/Time_Arithmetical/xmlStable/TEE_TimeArithm_API.xml,${CFG_GP_XSL_PACKAGE_PATH}/packages/Time_Arithmetical/xmlpatch/v1_1_0_4-2014_11_07/TEE_TimeArithm_API.xml.patch)
153 $(call patch-file,${CFG_GP_PACKAGE_PATH}/packages/TrustedCoreFw/xmlStable/TEE_Internal_API.xml,${CFG_GP_XSL_PACKAGE_PATH}/packages/TrustedCoreFw/xmlpatch/v1_1_0_4-2014_11_07/TEE_Internal_API.xml.patch)
154 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical.c,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Arithmetical/code_patches/v1_1_0_4-2014_11_07/TTA_Arithmetical.c.patch)
155 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Arithmetical/code_patches/v1_1_0_4-2014_11_07/TTA_Arithmetical_protocol.h.patch)
156 # $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_ClientAPI/ta_check_OpenSession_with_4_parameters/code_files/TTA_check_OpenSession_with_4_parameters_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_check_OpenSession_with_4_parameters/code_patches/v1_1_0_4-2014_11_07/TTA_check_OpenSession_with_4_parameters_protocol.h.patch)
157 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_testingClientAPI/code_files/TTA_testingClientAPI_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_testingClientAPI/code_patches/v1_1_0_4-2014_11_07/TTA_testingClientAPI_protocol.h.patch)
158 # $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerSuccessTo_OpenSession_Invoke/code_files/TTA_answerSuccessTo_OpenSession_Invoke_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerSuccessTo_OpenSession_Invoke/code_patches/v1_1_0_4-2014_11_07/TTA_answerSuccessTo_OpenSession_Invoke_protocol.h.patch)
159 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerErrorTo_OpenSession/code_files/TTA_answerErrorTo_OpenSession_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerErrorTo_OpenSession/code_patches/v1_1_0_4-2014_11_07/TTA_answerErrorTo_OpenSession_protocol.h.patch)
160 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerErrorTo_Invoke/code_files/TTA_answerErrorTo_Invoke_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_ClientAPI/TTA_answerErrorTo_Invoke/code_patches/v1_1_0_4-2014_11_07/TTA_answerErrorTo_Invoke_protocol.h.patch)
161 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Crypto/code_patches/v1_1_0_4-2014_11_07/TTA_Crypto.c.patch)
162 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Crypto/code_patches/v1_1_0_4-2014_11_07/TTA_Crypto_protocol.h.patch)
163 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_DS/TTA_DS/code_files/TTA_DS_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_DS/code_patches/v1_1_0_4-2014_11_07/TTA_DS_protocol.h.patch)
164 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_DS/TTA_DS/code_files/TTA_DS.c,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_DS/code_patches/v1_1_0_4-2014_11_07/TTA_DS.c.patch)
165 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TEE_include/tee_internal_api.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TEE_include/code_patches/v1_1_0_4-2014_11_07/tee_internal_api.h.patch)
166 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_ICA/code_files/TTA_TCF_ICA_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_ICA/code_patches/v1_1_0_4-2014_11_07/TTA_TCF_ICA_protocol.h.patch)
167 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_MultipleInstanceTA/code_files/TTA_TCF_MultipleInstanceTA_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_MultipleInstanceTA/code_patches/v1_1_0_4-2014_11_07/TTA_TCF_MultipleInstanceTA_protocol.h.patch)
168 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF/code_patches/v1_1_0_4-2014_11_07/TTA_TCF.h.patch)
169 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_SingleInstanceTA/code_files/TTA_TCF_SingleInstanceTA_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_TCF/TTA_TCF_SingleInstanceTA/code_patches/v1_1_0_4-2014_11_07/TTA_TCF_SingleInstanceTA_protocol.h.patch)
170 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Time/TTA_Time/code_files/TTA_Time_protocol.h,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Time/code_patches/v1_1_0_4-2014_11_07/TTA_Time_protocol.h.patch)
171 $(call patch-file,${CFG_GP_PACKAGE_PATH}/TTAs/TTA_Time/TTA_Time/code_files/TTA_Time.c,${CFG_GP_XSL_PACKAGE_PATH}/TTAs/TTA_Time/code_patches/v1_1_0_4-2014_11_07/TTA_Time.c.patch)
172
173define patch-filter-one
174 $(q)sed -i 's|^ADBG_SUITE_ENTRY(XTEST_TEE_'${1}', NULL)|/\*ADBG_SUITE_ENTRY(XTEST_TEE_'${1}', NULL)\*/|g' ${GP_XTEST_OUT_DIR}/xtest_main.c
175 $(q)sed -i 's| ADBG_SUITE_ENTRY(XTEST_TEE_'${1}', NULL)\\| /\*ADBG_SUITE_ENTRY(XTEST_TEE_'${1}', NULL)\*/\\|g' ${GP_XTEST_OUT_DIR}/adbg_entry_declare.h
176endef
177
178patch-filter:
179 @echo "INFO: Filter some tests"
180 $(call patch-filter-one,7038)
181 $(call patch-filter-one,7522)
182 $(call patch-filter-one,7538)
183 $(call patch-filter-one,7540)
184 $(call patch-filter-one,7546)
185 $(call patch-filter-one,7557)
186 $(call patch-filter-one,7522)
187 $(call patch-filter-one,7538)
188 $(call patch-filter-one,7540)
189 $(call patch-filter-one,7546)
190 $(call patch-filter-one,7557)
191 $(call patch-filter-one,7559)
192 $(call patch-filter-one,7577)
193 $(call patch-filter-one,7641)
194 $(call patch-filter-one,7642)
195 $(call patch-filter-one,7643)
196 $(call patch-filter-one,7644)
197 $(call patch-filter-one,7686)
198 $(call patch-filter-one,8025)
199 $(call patch-filter-one,8058)
200 $(call patch-filter-one,8059)
201 $(call patch-filter-one,8030)
202 $(call patch-filter-one,8066)
203 $(call patch-filter-one,8614)
204 $(call patch-filter-one,8643)
205 $(call patch-filter-one,8644)
206 $(call patch-filter-one,8673)
207 $(call patch-filter-one,8674)
208 $(call patch-filter-one,9001)
209 $(call patch-filter-one,9053)
210 $(call patch-filter-one,9072)
211 $(call patch-filter-one,9073)
212 $(call patch-filter-one,9074)
213 $(call patch-filter-one,9075)
214 $(call patch-filter-one,9079)
215 $(call patch-filter-one,9080)
216 $(call patch-filter-one,9081)
217 $(call patch-filter-one,9082)
218 $(call patch-filter-one,9085)
219 $(call patch-filter-one,9086)
220 $(call patch-filter-one,9087)
221 $(call patch-filter-one,9088)
222 $(call patch-filter-one,9090)
223 $(call patch-filter-one,9091)
224 $(call patch-filter-one,9092)
225 $(call patch-filter-one,9093)
226 $(call patch-filter-one,9095)
227 $(call patch-filter-one,9096)
228 $(call patch-filter-one,9098)
229 $(call patch-filter-one,9099)
230 $(call patch-filter-one,9104)
231 $(call patch-filter-one,9109)
232 $(call patch-filter-one,9110)
233 $(call patch-filter-one,9111)
234 $(call patch-filter-one,9145)
235 $(call patch-filter-one,9146)
236 $(call patch-filter-one,9147)
237 $(call patch-filter-one,9148)
238 $(call patch-filter-one,9149)
239 $(call patch-filter-one,9160)
240 $(call patch-filter-one,9174)
241 $(call patch-filter-one,9181)
242 $(call patch-filter-one,9182)
243 $(call patch-filter-one,9183)
244 $(call patch-filter-one,9184)
245 $(call patch-filter-one,9186)
246 $(call patch-filter-one,9187)
247 $(call patch-filter-one,9195)
248 $(call patch-filter-one,9196)
249 $(call patch-filter-one,9204)
250 $(call patch-filter-one,9239)
251
252patch: patch-openssl patch-generate-host patch-generate-ta
253 $(MAKE) patch-filter
254
255else
Pascal Brandc639ac82015-07-02 08:53:34 +0200256patch:
Pascal Brandd69d40c2015-09-17 14:37:41 +0200257 $(q) echo "Please define CFG_GP_TESTSUITE_ENABLE=y" && false
Pascal Brandc639ac82015-07-02 08:53:34 +0200258endif