blob: a4847f92c5891d7b0aeee0fe1623608300472565 [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +00002#include "mbedtls/version.h"
Paul Bakker33b43f12013-08-20 11:48:36 +02003/* END_HEADER */
Paul Bakker3ac1b2d2010-06-18 22:47:29 +00004
Paul Bakker33b43f12013-08-20 11:48:36 +02005/* BEGIN_DEPENDENCIES
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +02006 * depends_on:MBEDTLS_VERSION_C
Paul Bakker33b43f12013-08-20 11:48:36 +02007 * END_DEPENDENCIES
8 */
Paul Bakker5690efc2011-05-26 13:16:06 +00009
Paul Bakker33b43f12013-08-20 11:48:36 +020010/* BEGIN_CASE */
11void check_compiletime_version( char *version_str )
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000012{
13 char build_str[100];
14 char build_str_full[100];
15 unsigned int build_int;
16
17 memset( build_str, 0, 100 );
18 memset( build_str_full, 0, 100 );
19
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020020 mbedtls_snprintf( build_str, 100, "%d.%d.%d", MBEDTLS_VERSION_MAJOR,
21 MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000022
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020023 mbedtls_snprintf( build_str_full, 100, "mbed TLS %d.%d.%d", MBEDTLS_VERSION_MAJOR,
24 MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000025
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020026 build_int = MBEDTLS_VERSION_MAJOR << 24 |
27 MBEDTLS_VERSION_MINOR << 16 |
28 MBEDTLS_VERSION_PATCH << 8;
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000029
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020030 TEST_ASSERT( build_int == MBEDTLS_VERSION_NUMBER );
31 TEST_ASSERT( strcmp( build_str, MBEDTLS_VERSION_STRING ) == 0 );
32 TEST_ASSERT( strcmp( build_str_full, MBEDTLS_VERSION_STRING_FULL ) == 0 );
33 TEST_ASSERT( strcmp( version_str, MBEDTLS_VERSION_STRING ) == 0 );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000034}
Paul Bakker33b43f12013-08-20 11:48:36 +020035/* END_CASE */
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000036
Paul Bakker33b43f12013-08-20 11:48:36 +020037/* BEGIN_CASE */
38void check_runtime_version( char *version_str )
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000039{
40 char build_str[100];
41 char get_str[100];
42 char build_str_full[100];
43 char get_str_full[100];
44 unsigned int get_int;
45
46 memset( build_str, 0, 100 );
47 memset( get_str, 0, 100 );
48 memset( build_str_full, 0, 100 );
49 memset( get_str_full, 0, 100 );
50
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020051 get_int = mbedtls_version_get_number();
52 mbedtls_version_get_string( get_str );
53 mbedtls_version_get_string_full( get_str_full );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000054
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020055 mbedtls_snprintf( build_str, 100, "%d.%d.%d",
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000056 (get_int >> 24) & 0xFF,
57 (get_int >> 16) & 0xFF,
58 (get_int >> 8) & 0xFF );
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020059 mbedtls_snprintf( build_str_full, 100, "mbed TLS %s", version_str );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000060
Paul Bakker33b43f12013-08-20 11:48:36 +020061 TEST_ASSERT( strcmp( build_str, version_str ) == 0 );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000062 TEST_ASSERT( strcmp( build_str_full, get_str_full ) == 0 );
Paul Bakker33b43f12013-08-20 11:48:36 +020063 TEST_ASSERT( strcmp( version_str, get_str ) == 0 );
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000064}
Paul Bakker33b43f12013-08-20 11:48:36 +020065/* END_CASE */
Paul Bakker0f90d7d2014-04-30 11:49:44 +020066
Deomid Ryabkovde420a42016-11-27 14:50:06 +000067/* BEGIN_CASE depends_on:MBEDTLS_VERSION_FEATURES */
Paul Bakker0f90d7d2014-04-30 11:49:44 +020068void check_feature( char *feature, int result )
69{
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020070 int check = mbedtls_version_check_feature( feature );
Paul Bakker0f90d7d2014-04-30 11:49:44 +020071 TEST_ASSERT( check == result );
72}
73/* END_CASE */