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 /* #if LIBSPDM_EVENT_RECIPIENT_SUPPORT */
68 : int libspdm_requester_encap_key_update_test_main(void);
69 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
70 : int libspdm_requester_encap_endpoint_info_test_main(void);
71 : int libspdm_requester_encap_endpoint_info_error_test_main(void);
72 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP */
73 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP */
74 :
75 : int libspdm_requester_set_certificate_test_main(void);
76 : int libspdm_requester_get_csr_test_main(void);
77 :
78 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
79 : int libspdm_requester_chunk_get_test_main(void);
80 : int libspdm_requester_chunk_send_test_main(void);
81 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
82 :
83 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
84 : int libspdm_requester_get_event_types_test_main(void);
85 : int libspdm_requester_get_event_types_error_test_main(void);
86 : int libspdm_requester_subscribe_event_types_test_main(void);
87 : int libspdm_requester_subscribe_event_types_error_test_main(void);
88 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
89 :
90 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
91 : int libspdm_requester_vendor_cmds_test_main(void);
92 : int libspdm_requester_vendor_cmds_error_test_main(void);
93 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
94 :
95 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
96 : int libspdm_requester_get_key_pair_info_test_main(void);
97 : int libspdm_requester_get_key_pair_info_error_test_main(void);
98 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP */
99 :
100 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
101 : int libspdm_requester_set_key_pair_info_test_main(void);
102 : int libspdm_requester_set_key_pair_info_error_test_main(void);
103 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP */
104 :
105 : #if LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT
106 : int libspdm_requester_get_endpoint_info_test_main(void);
107 : int libspdm_requester_get_endpoint_info_error_test_main(void);
108 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
109 :
110 1 : int main(void)
111 : {
112 1 : int return_value = 0;
113 :
114 1 : if (libspdm_requester_get_version_test_main() != 0) {
115 0 : return_value = 1;
116 : }
117 1 : if (libspdm_requester_get_version_error_test_main() != 0) {
118 0 : return_value = 1;
119 : }
120 :
121 1 : if (libspdm_requester_get_capabilities_test_main() != 0) {
122 0 : return_value = 1;
123 : }
124 1 : if (libspdm_requester_get_capabilities_error_test_main() != 0) {
125 0 : return_value = 1;
126 : }
127 :
128 1 : if (libspdm_requester_negotiate_algorithms_test_main() != 0) {
129 0 : return_value = 1;
130 : }
131 1 : if (libspdm_requester_negotiate_algorithms_error_test_main() != 0) {
132 0 : return_value = 1;
133 : }
134 :
135 : #if LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT
136 1 : if (libspdm_requester_get_digests_test_main() != 0) {
137 0 : return_value = 1;
138 : }
139 1 : if (libspdm_requester_get_digests_error_test_main() != 0) {
140 0 : return_value = 1;
141 : }
142 1 : if (libspdm_requester_get_certificate_test_main() != 0) {
143 0 : return_value = 1;
144 : }
145 : #endif /* LIBSPDM_SEND_GET_CERTIFICATE_SUPPORT */
146 :
147 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
148 1 : if (libspdm_requester_challenge_test_main() != 0) {
149 0 : return_value = 1;
150 : }
151 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP*/
152 :
153 : #if LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP
154 1 : if (libspdm_requester_get_measurements_test_main() != 0) {
155 0 : return_value = 1;
156 : }
157 1 : if (libspdm_requester_get_measurements_error_test_main() != 0) {
158 0 : return_value = 1;
159 : }
160 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP */
161 :
162 : #if LIBSPDM_ENABLE_CAPABILITY_MEL_CAP
163 1 : if (libspdm_requester_get_measurement_extension_log_test_main() != 0) {
164 0 : return_value = 1;
165 : }
166 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MEL_CAP */
167 :
168 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
169 1 : if (libspdm_requester_key_exchange_test_main() != 0) {
170 0 : return_value = 1;
171 : }
172 1 : if (libspdm_requester_key_exchange_error_test_main() != 0) {
173 0 : return_value = 1;
174 : }
175 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
176 :
177 : #if LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP
178 1 : if (libspdm_requester_finish_test_main() != 0) {
179 0 : return_value = 1;
180 : }
181 : #endif /* LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP*/
182 :
183 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
184 1 : if (libspdm_requester_psk_exchange_test_main() != 0) {
185 0 : return_value = 1;
186 : }
187 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
188 :
189 : #if LIBSPDM_ENABLE_CAPABILITY_PSK_CAP
190 1 : if (libspdm_requester_psk_finish_test_main() != 0) {
191 0 : return_value = 1;
192 : }
193 : #endif /* LIBSPDM_ENABLE_CAPABILITY_PSK_CAP*/
194 :
195 : #if (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP)
196 1 : if (libspdm_requester_heartbeat_test_main() != 0) {
197 0 : return_value = 1;
198 : }
199 1 : if (libspdm_requester_key_update_test_main() != 0) {
200 0 : return_value = 1;
201 : }
202 1 : if (libspdm_requester_end_session_test_main() != 0) {
203 0 : return_value = 1;
204 : }
205 : #endif /* (LIBSPDM_ENABLE_CAPABILITY_KEY_EX_CAP) || (LIBSPDM_ENABLE_CAPABILITY_PSK_CAP) */
206 :
207 : #if LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT
208 1 : if (libspdm_requester_get_endpoint_info_test_main() != 0) {
209 0 : return_value = 1;
210 : }
211 1 : if (libspdm_requester_get_endpoint_info_error_test_main() != 0) {
212 0 : return_value = 1;
213 : }
214 : #endif /* LIBSPDM_SEND_GET_ENDPOINT_INFO_SUPPORT */
215 :
216 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
217 1 : if (libspdm_requester_encap_request_test_main() != 0) {
218 0 : return_value = 1;
219 : }
220 : #if LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP
221 : #if LIBSPDM_ENABLE_CAPABILITY_CERT_CAP
222 1 : if (libspdm_requester_encap_digests_test_main() != 0) {
223 0 : return_value = 1;
224 : }
225 1 : if (libspdm_requester_encap_certificate_test_main() != 0) {
226 0 : return_value = 1;
227 : }
228 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
229 : #if LIBSPDM_ENABLE_CAPABILITY_CHAL_CAP
230 1 : if (libspdm_requester_encap_challenge_auth_test_main() != 0) {
231 0 : return_value = 1;
232 : }
233 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CERT_CAP */
234 : #endif /* LIBSPDM_ENABLE_CAPABILITY_MUT_AUTH_CAP */
235 1 : if (libspdm_requester_encap_key_update_test_main() != 0) {
236 0 : return_value = 1;
237 : }
238 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
239 1 : if (libspdm_requester_encap_event_ack_test_main() != 0) {
240 0 : return_value = 1;
241 : }
242 1 : if (libspdm_requester_encap_event_ack_error_test_main() != 0) {
243 0 : return_value = 1;
244 : }
245 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
246 : #if LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP
247 1 : if (libspdm_requester_encap_endpoint_info_test_main() != 0) {
248 0 : return_value = 1;
249 : }
250 1 : if (libspdm_requester_encap_endpoint_info_error_test_main() != 0) {
251 0 : return_value = 1;
252 : }
253 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP */
254 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP */
255 :
256 : #if LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP
257 1 : if (libspdm_requester_set_certificate_test_main() != 0) {
258 0 : return_value = 1;
259 : }
260 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_CERT_CAP */
261 :
262 : #if LIBSPDM_ENABLE_CAPABILITY_CSR_CAP
263 1 : if (libspdm_requester_get_csr_test_main() != 0) {
264 0 : return_value = 1;
265 : }
266 : #endif /*LIBSPDM_ENABLE_CAPABILITY_CSR_CAP*/
267 :
268 : #if LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP
269 1 : if (libspdm_requester_chunk_get_test_main() != 0) {
270 0 : return_value = 1;
271 : }
272 1 : if (libspdm_requester_chunk_send_test_main() != 0) {
273 0 : return_value = 1;
274 : }
275 : #endif /* LIBSPDM_ENABLE_CAPABILITY_CHUNK_CAP */
276 :
277 : #if LIBSPDM_EVENT_RECIPIENT_SUPPORT
278 1 : if (libspdm_requester_get_event_types_test_main() != 0) {
279 0 : return_value = 1;
280 : }
281 1 : if (libspdm_requester_get_event_types_error_test_main() != 0) {
282 0 : return_value = 1;
283 : }
284 1 : if (libspdm_requester_subscribe_event_types_test_main() != 0) {
285 0 : return_value = 1;
286 : }
287 1 : if (libspdm_requester_subscribe_event_types_error_test_main() != 0) {
288 0 : return_value = 1;
289 : }
290 : #endif /* LIBSPDM_EVENT_RECIPIENT_SUPPORT */
291 :
292 : #if LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP
293 1 : if (libspdm_requester_get_key_pair_info_test_main() != 0) {
294 0 : return_value = 1;
295 : }
296 1 : if (libspdm_requester_get_key_pair_info_error_test_main() != 0) {
297 0 : return_value = 1;
298 : }
299 : #endif /* LIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP */
300 :
301 : #if LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP
302 1 : if (libspdm_requester_set_key_pair_info_test_main() != 0) {
303 0 : return_value = 1;
304 : }
305 1 : if (libspdm_requester_set_key_pair_info_error_test_main() != 0) {
306 0 : return_value = 1;
307 : }
308 : #endif /* LIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP */
309 :
310 : #if LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES
311 1 : if (libspdm_requester_vendor_cmds_test_main() != 0) {
312 0 : return_value = 1;
313 : }
314 1 : if (libspdm_requester_vendor_cmds_error_test_main() != 0) {
315 0 : return_value = 1;
316 : }
317 : #endif /* LIBSPDM_ENABLE_VENDOR_DEFINED_MESSAGES */
318 :
319 1 : return return_value;
320 : }
|