Line data Source code
1 : /**
2 : * Copyright Notice:
3 : * Copyright 2021-2025 DMTF. All rights reserved.
4 : * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
5 : **/
6 :
7 : #include "spdm_unit_test.h"
8 : #include "internal/libspdm_requester_lib.h"
9 :
10 : int libspdm_requester_get_version_test_main(void);
11 : int libspdm_requester_get_version_error_test_main(void);
12 : int libspdm_requester_get_capabilities_test_main(void);
13 : int libspdm_requester_get_capabilities_error_test_main(void);
14 : int libspdm_requester_negotiate_algorithms_test_main(void);
15 : int libspdm_requester_negotiate_algorithms_error_test_main(void);
16 :
17 : #if LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT
18 : int libspdm_requester_get_digests_test_main(void);
19 : int libspdm_requester_get_digests_error_test_main(void);
20 : int libspdm_requester_get_certificate_test_main(void);
21 : #endif /* LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT */
22 :
23 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
24 : int libspdm_requester_challenge_test_main(void);
25 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP*/
26 :
27 : #if LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP
28 : int libspdm_requester_get_measurements_test_main(void);
29 : int libspdm_requester_get_measurements_error_test_main(void);
30 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP*/
31 :
32 : #if LIBSPDM_ENABLE_CAPABILITY_MEL_CAP
33 : int libspdm_requester_get_measurement_extension_log_test_main(void);
34 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEL_CAP*/
35 :
36 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
37 : int libspdm_requester_key_exchange_test_main(void);
38 : int libspdm_requester_key_exchange_error_test_main(void);
39 : int libspdm_requester_finish_test_main(void);
40 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
41 :
42 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
43 : int libspdm_requester_psk_exchange_test_main(void);
44 : int libspdm_requester_psk_finish_test_main(void);
45 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
46 :
47 : #if (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
48 : int libspdm_requester_heartbeat_test_main(void);
49 : int libspdm_requester_key_update_test_main(void);
50 : int libspdm_requester_end_session_test_main(void);
51 : #endif /* (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP) */
52 :
53 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
54 : int libspdm_requester_encap_request_test_main(void);
55 : #if LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP
56 : #if LIBSPDM_ENABLE_CAPABILITY_CERT_CAP
57 : int libspdm_requester_encap_digests_test_main(void);
58 : int libspdm_requester_encap_certificate_test_main(void);
59 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
60 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
61 : int libspdm_requester_encap_challenge_auth_test_main(void);
62 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
63 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP */
64 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
65 : int libspdm_requester_encap_event_ack_test_main(void);
66 : int libspdm_requester_encap_event_ack_error_test_main(void);
67 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
68 : #if LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP
69 : int libspdm_requester_encap_supported_event_types_test_main(void);
70 : int libspdm_requester_encap_supported_event_types_error_test_main(void);
71 : #endif /* LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP */
72 : int libspdm_requester_encap_key_update_test_main(void);
73 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
74 : int libspdm_requester_encap_endpoint_info_test_main(void);
75 : int libspdm_requester_encap_endpoint_info_error_test_main(void);
76 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP */
77 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP */
78 :
79 : int libspdm_requester_set_certificate_test_main(void);
80 : int libspdm_requester_get_csr_test_main(void);
81 :
82 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
83 : int libspdm_requester_chunk_get_test_main(void);
84 : int libspdm_requester_chunk_send_test_main(void);
85 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
86 :
87 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
88 : int libspdm_requester_get_event_types_test_main(void);
89 : int libspdm_requester_get_event_types_error_test_main(void);
90 : int libspdm_requester_subscribe_event_types_test_main(void);
91 : int libspdm_requester_subscribe_event_types_error_test_main(void);
92 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
93 :
94 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
95 : int libspdm_requester_vendor_cmds_test_main(void);
96 : int libspdm_requester_vendor_cmds_error_test_main(void);
97 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
98 :
99 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
100 : int libspdm_requester_get_key_pair_info_test_main(void);
101 : int libspdm_requester_get_key_pair_info_error_test_main(void);
102 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP */
103 :
104 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
105 : int libspdm_requester_set_key_pair_info_test_main(void);
106 : int libspdm_requester_set_key_pair_info_error_test_main(void);
107 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP */
108 :
109 : #if LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT
110 : int libspdm_requester_get_endpoint_info_test_main(void);
111 : int libspdm_requester_get_endpoint_info_error_test_main(void);
112 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
113 :
114 1 : int main(void)
115 : {
116 1 : int return_value = 0;
117 :
118 1 : if (libspdm_requester_get_version_test_main() != 0) {
119 0 : return_value = 1;
120 : }
121 1 : if (libspdm_requester_get_version_error_test_main() != 0) {
122 0 : return_value = 1;
123 : }
124 :
125 1 : if (libspdm_requester_get_capabilities_test_main() != 0) {
126 0 : return_value = 1;
127 : }
128 1 : if (libspdm_requester_get_capabilities_error_test_main() != 0) {
129 0 : return_value = 1;
130 : }
131 :
132 1 : if (libspdm_requester_negotiate_algorithms_test_main() != 0) {
133 0 : return_value = 1;
134 : }
135 1 : if (libspdm_requester_negotiate_algorithms_error_test_main() != 0) {
136 0 : return_value = 1;
137 : }
138 :
139 : #if LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT
140 1 : if (libspdm_requester_get_digests_test_main() != 0) {
141 0 : return_value = 1;
142 : }
143 1 : if (libspdm_requester_get_digests_error_test_main() != 0) {
144 0 : return_value = 1;
145 : }
146 1 : if (libspdm_requester_get_certificate_test_main() != 0) {
147 0 : return_value = 1;
148 : }
149 : #endif /* LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT */
150 :
151 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
152 1 : if (libspdm_requester_challenge_test_main() != 0) {
153 0 : return_value = 1;
154 : }
155 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP*/
156 :
157 : #if LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP
158 1 : if (libspdm_requester_get_measurements_test_main() != 0) {
159 0 : return_value = 1;
160 : }
161 1 : if (libspdm_requester_get_measurements_error_test_main() != 0) {
162 0 : return_value = 1;
163 : }
164 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP */
165 :
166 : #if LIBSPDM_ENABLE_CAPABILITY_MEL_CAP
167 1 : if (libspdm_requester_get_measurement_extension_log_test_main() != 0) {
168 0 : return_value = 1;
169 : }
170 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEL_CAP */
171 :
172 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
173 1 : if (libspdm_requester_key_exchange_test_main() != 0) {
174 0 : return_value = 1;
175 : }
176 1 : if (libspdm_requester_key_exchange_error_test_main() != 0) {
177 0 : return_value = 1;
178 : }
179 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
180 :
181 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
182 1 : if (libspdm_requester_finish_test_main() != 0) {
183 0 : return_value = 1;
184 : }
185 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
186 :
187 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
188 1 : if (libspdm_requester_psk_exchange_test_main() != 0) {
189 0 : return_value = 1;
190 : }
191 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
192 :
193 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
194 1 : if (libspdm_requester_psk_finish_test_main() != 0) {
195 0 : return_value = 1;
196 : }
197 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
198 :
199 : #if (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
200 1 : if (libspdm_requester_heartbeat_test_main() != 0) {
201 0 : return_value = 1;
202 : }
203 1 : if (libspdm_requester_key_update_test_main() != 0) {
204 0 : return_value = 1;
205 : }
206 1 : if (libspdm_requester_end_session_test_main() != 0) {
207 0 : return_value = 1;
208 : }
209 : #endif /* (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP) */
210 :
211 : #if (LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT) && (LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP)
212 1 : if (libspdm_requester_get_endpoint_info_test_main() != 0) {
213 0 : return_value = 1;
214 : }
215 1 : if (libspdm_requester_get_endpoint_info_error_test_main() != 0) {
216 0 : return_value = 1;
217 : }
218 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
219 :
220 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
221 1 : if (libspdm_requester_encap_request_test_main() != 0) {
222 0 : return_value = 1;
223 : }
224 : #if LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP
225 : #if LIBSPDM_ENABLE_CAPABILITY_CERT_CAP
226 1 : if (libspdm_requester_encap_digests_test_main() != 0) {
227 0 : return_value = 1;
228 : }
229 1 : if (libspdm_requester_encap_certificate_test_main() != 0) {
230 0 : return_value = 1;
231 : }
232 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
233 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
234 1 : if (libspdm_requester_encap_challenge_auth_test_main() != 0) {
235 0 : return_value = 1;
236 : }
237 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
238 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP */
239 1 : if (libspdm_requester_encap_key_update_test_main() != 0) {
240 0 : return_value = 1;
241 : }
242 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
243 1 : if (libspdm_requester_encap_event_ack_test_main() != 0) {
244 0 : return_value = 1;
245 : }
246 1 : if (libspdm_requester_encap_event_ack_error_test_main() != 0) {
247 0 : return_value = 1;
248 : }
249 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
250 : #if LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP
251 1 : if (libspdm_requester_encap_supported_event_types_test_main() != 0) {
252 0 : return_value = 1;
253 : }
254 1 : if (libspdm_requester_encap_supported_event_types_error_test_main() != 0) {
255 0 : return_value = 1;
256 : }
257 : #endif /* LIBSPDM_ENABLE_CAPABILITY_EVENT_CAP */
258 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
259 1 : if (libspdm_requester_encap_endpoint_info_test_main() != 0) {
260 0 : return_value = 1;
261 : }
262 1 : if (libspdm_requester_encap_endpoint_info_error_test_main() != 0) {
263 0 : return_value = 1;
264 : }
265 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP */
266 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP */
267 :
268 : #if LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP
269 1 : if (libspdm_requester_set_certificate_test_main() != 0) {
270 0 : return_value = 1;
271 : }
272 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP */
273 :
274 : #if LIBSPDM_ENABLE_CAPABILITY_CSR_CAP
275 1 : if (libspdm_requester_get_csr_test_main() != 0) {
276 0 : return_value = 1;
277 : }
278 : #endif /*LIBSPDM_ENABLE_CAPABILITY_CSR_CAP*/
279 :
280 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
281 1 : if (libspdm_requester_chunk_get_test_main() != 0) {
282 0 : return_value = 1;
283 : }
284 1 : if (libspdm_requester_chunk_send_test_main() != 0) {
285 0 : return_value = 1;
286 : }
287 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
288 :
289 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
290 1 : if (libspdm_requester_get_event_types_test_main() != 0) {
291 0 : return_value = 1;
292 : }
293 1 : if (libspdm_requester_get_event_types_error_test_main() != 0) {
294 0 : return_value = 1;
295 : }
296 1 : if (libspdm_requester_subscribe_event_types_test_main() != 0) {
297 0 : return_value = 1;
298 : }
299 1 : if (libspdm_requester_subscribe_event_types_error_test_main() != 0) {
300 0 : return_value = 1;
301 : }
302 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
303 :
304 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
305 1 : if (libspdm_requester_get_key_pair_info_test_main() != 0) {
306 0 : return_value = 1;
307 : }
308 1 : if (libspdm_requester_get_key_pair_info_error_test_main() != 0) {
309 0 : return_value = 1;
310 : }
311 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP */
312 :
313 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
314 1 : if (libspdm_requester_set_key_pair_info_test_main() != 0) {
315 0 : return_value = 1;
316 : }
317 1 : if (libspdm_requester_set_key_pair_info_error_test_main() != 0) {
318 0 : return_value = 1;
319 : }
320 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP */
321 :
322 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
323 1 : if (libspdm_requester_vendor_cmds_test_main() != 0) {
324 0 : return_value = 1;
325 : }
326 1 : if (libspdm_requester_vendor_cmds_error_test_main() != 0) {
327 0 : return_value = 1;
328 : }
329 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
330 :
331 1 : return return_value;
332 : }
|