xref: /aosp_15_r20/external/mbedtls/tests/suites/test_suite_version.function (revision 62c56f9862f102b96d72393aff6076c951fb8148)
1*62c56f98SSadaf Ebrahimi/* BEGIN_HEADER */
2*62c56f98SSadaf Ebrahimi#include "mbedtls/version.h"
3*62c56f98SSadaf Ebrahimi/* END_HEADER */
4*62c56f98SSadaf Ebrahimi
5*62c56f98SSadaf Ebrahimi/* BEGIN_DEPENDENCIES
6*62c56f98SSadaf Ebrahimi * depends_on:MBEDTLS_VERSION_C
7*62c56f98SSadaf Ebrahimi * END_DEPENDENCIES
8*62c56f98SSadaf Ebrahimi */
9*62c56f98SSadaf Ebrahimi
10*62c56f98SSadaf Ebrahimi/* BEGIN_CASE */
11*62c56f98SSadaf Ebrahimivoid check_compiletime_version(char *version_str)
12*62c56f98SSadaf Ebrahimi{
13*62c56f98SSadaf Ebrahimi    char build_str[100];
14*62c56f98SSadaf Ebrahimi    char build_str_full[100];
15*62c56f98SSadaf Ebrahimi    unsigned int build_int;
16*62c56f98SSadaf Ebrahimi
17*62c56f98SSadaf Ebrahimi    memset(build_str, 0, 100);
18*62c56f98SSadaf Ebrahimi    memset(build_str_full, 0, 100);
19*62c56f98SSadaf Ebrahimi
20*62c56f98SSadaf Ebrahimi    mbedtls_snprintf(build_str, 100, "%d.%d.%d", MBEDTLS_VERSION_MAJOR,
21*62c56f98SSadaf Ebrahimi                     MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH);
22*62c56f98SSadaf Ebrahimi
23*62c56f98SSadaf Ebrahimi    mbedtls_snprintf(build_str_full, 100, "Mbed TLS %d.%d.%d", MBEDTLS_VERSION_MAJOR,
24*62c56f98SSadaf Ebrahimi                     MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH);
25*62c56f98SSadaf Ebrahimi
26*62c56f98SSadaf Ebrahimi    build_int = MBEDTLS_VERSION_MAJOR << 24 |
27*62c56f98SSadaf Ebrahimi                MBEDTLS_VERSION_MINOR << 16 |
28*62c56f98SSadaf Ebrahimi                MBEDTLS_VERSION_PATCH << 8;
29*62c56f98SSadaf Ebrahimi
30*62c56f98SSadaf Ebrahimi    TEST_ASSERT(build_int == MBEDTLS_VERSION_NUMBER);
31*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(build_str, MBEDTLS_VERSION_STRING) == 0);
32*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(build_str_full, MBEDTLS_VERSION_STRING_FULL) == 0);
33*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(version_str, MBEDTLS_VERSION_STRING) == 0);
34*62c56f98SSadaf Ebrahimi}
35*62c56f98SSadaf Ebrahimi/* END_CASE */
36*62c56f98SSadaf Ebrahimi
37*62c56f98SSadaf Ebrahimi/* BEGIN_CASE */
38*62c56f98SSadaf Ebrahimivoid check_runtime_version(char *version_str)
39*62c56f98SSadaf Ebrahimi{
40*62c56f98SSadaf Ebrahimi    char build_str[100];
41*62c56f98SSadaf Ebrahimi    char get_str[100];
42*62c56f98SSadaf Ebrahimi    char build_str_full[100];
43*62c56f98SSadaf Ebrahimi    char get_str_full[100];
44*62c56f98SSadaf Ebrahimi    unsigned int get_int;
45*62c56f98SSadaf Ebrahimi
46*62c56f98SSadaf Ebrahimi    memset(build_str, 0, 100);
47*62c56f98SSadaf Ebrahimi    memset(get_str, 0, 100);
48*62c56f98SSadaf Ebrahimi    memset(build_str_full, 0, 100);
49*62c56f98SSadaf Ebrahimi    memset(get_str_full, 0, 100);
50*62c56f98SSadaf Ebrahimi
51*62c56f98SSadaf Ebrahimi    get_int = mbedtls_version_get_number();
52*62c56f98SSadaf Ebrahimi    mbedtls_version_get_string(get_str);
53*62c56f98SSadaf Ebrahimi    mbedtls_version_get_string_full(get_str_full);
54*62c56f98SSadaf Ebrahimi
55*62c56f98SSadaf Ebrahimi    mbedtls_snprintf(build_str, 100, "%u.%u.%u",
56*62c56f98SSadaf Ebrahimi                     (get_int >> 24) & 0xFF,
57*62c56f98SSadaf Ebrahimi                     (get_int >> 16) & 0xFF,
58*62c56f98SSadaf Ebrahimi                     (get_int >> 8) & 0xFF);
59*62c56f98SSadaf Ebrahimi    mbedtls_snprintf(build_str_full, 100, "Mbed TLS %s", version_str);
60*62c56f98SSadaf Ebrahimi
61*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(build_str, version_str) == 0);
62*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(build_str_full, get_str_full) == 0);
63*62c56f98SSadaf Ebrahimi    TEST_ASSERT(strcmp(version_str, get_str) == 0);
64*62c56f98SSadaf Ebrahimi}
65*62c56f98SSadaf Ebrahimi/* END_CASE */
66*62c56f98SSadaf Ebrahimi
67*62c56f98SSadaf Ebrahimi/* BEGIN_CASE depends_on:MBEDTLS_VERSION_FEATURES */
68*62c56f98SSadaf Ebrahimivoid check_feature(char *feature, int result)
69*62c56f98SSadaf Ebrahimi{
70*62c56f98SSadaf Ebrahimi    int check = mbedtls_version_check_feature(feature);
71*62c56f98SSadaf Ebrahimi    TEST_ASSERT(check == result);
72*62c56f98SSadaf Ebrahimi}
73*62c56f98SSadaf Ebrahimi/* END_CASE */
74