From 17bedf705972890bdc9c7de0f538eb5c68ff60c7 Mon Sep 17 00:00:00 2001 From: Michael Schuster Date: Wed, 5 Jun 2024 20:55:58 +0200 Subject: [PATCH 1/2] Generate static test functions & wrappers to fix missing-prototype errors in mbedtls/tests/suites Required for: https://github.com/Mbed-TLS/mbedtls/pull/9189 Signed-off-by: Michael Schuster --- scripts/generate_test_code.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/generate_test_code.py b/scripts/generate_test_code.py index 5f711bfb1..6a69f9d3d 100755 --- a/scripts/generate_test_code.py +++ b/scripts/generate_test_code.py @@ -328,7 +328,7 @@ def gen_function_wrapper(name, local_vars, args_dispatch): """ # Then create the wrapper wrapper = ''' -void {name}_wrapper( void ** params ) +static void {name}_wrapper( void ** params ) {{ {unused_params}{locals} {name}( {args} ); @@ -651,6 +651,9 @@ def parse_function_code(funcs_f, dependencies, suite_dependencies): raise GeneratorInputError("file: %s - Test functions not found!" % funcs_f.name) + # Make the test function static + code = code.replace('void', 'static void', 1) + # Prefix test function name with 'test_' code = code.replace(name, 'test_' + name, 1) name = 'test_' + name From 6a1dc7daa9e861fb873dd4b9f13ebfbd6f82f6dc Mon Sep 17 00:00:00 2001 From: Michael Schuster Date: Fri, 7 Jun 2024 04:08:07 +0200 Subject: [PATCH 2/2] Update unit test for generate_test_code.py to take static test functions & wrappers into account Signed-off-by: Michael Schuster --- scripts/test_generate_test_code.py | 36 +++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/scripts/test_generate_test_code.py b/scripts/test_generate_test_code.py index abc46a729..0523e98c1 100755 --- a/scripts/test_generate_test_code.py +++ b/scripts/test_generate_test_code.py @@ -194,7 +194,7 @@ class GenFunctionWrapper(TestCase): """ code = gen_function_wrapper('test_a', '', ('a', 'b', 'c', 'd')) expected = ''' -void test_a_wrapper( void ** params ) +static void test_a_wrapper( void ** params ) { test_a( a, b, c, d ); @@ -211,7 +211,7 @@ void test_a_wrapper( void ** params ) code = gen_function_wrapper('test_a', 'int x = 1;', ('x', 'b', 'c', 'd')) expected = ''' -void test_a_wrapper( void ** params ) +static void test_a_wrapper( void ** params ) { int x = 1; test_a( x, b, c, d ); @@ -227,7 +227,7 @@ int x = 1; """ code = gen_function_wrapper('test_a', '', ()) expected = ''' -void test_a_wrapper( void ** params ) +static void test_a_wrapper( void ** params ) { (void)params; @@ -635,7 +635,7 @@ void func() self.assertEqual(arg, []) expected = '''#line 1 "test_suite_ut.function" -void test_func(void) +static void test_func(void) { ba ba black sheep have you any wool @@ -678,7 +678,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" -void test_func(void) +static void test_func(void) { ba ba black sheep have you any wool @@ -735,7 +735,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" -void +static void test_func(void) @@ -791,7 +791,7 @@ exit: -void test_func(void) +static void test_func(void) { ba ba black sheep have you any wool @@ -836,7 +836,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" -void test_func( int x, +static void test_func( int x, int y ) { @@ -881,7 +881,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" -void test_func( int x ) +static void test_func( int x ) { ba ba black sheep have you any wool @@ -926,7 +926,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" -void test_func( int x ) +static void test_func( int x ) { ba ba black sheep have you any wool @@ -975,7 +975,7 @@ class ParseFunction(TestCase): raise Exception parse_until_pattern_mock.side_effect = stop data = '''/* BEGIN_SUITE_HELPERS */ -void print_hello_world() +static void print_hello_world() { printf("Hello World!\n"); } @@ -1022,7 +1022,7 @@ void print_hello_world() dependencies_str = '/* BEGIN_CASE ' \ 'depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */\n' - data = '''%svoid test_func() + data = '''%sstatic void test_func() { } ''' % dependencies_str @@ -1039,7 +1039,7 @@ void print_hello_world() :return: """ func_mock1.return_value = [] - in_func_code = '''void test_func() + in_func_code = '''static void test_func() { } ''' @@ -1050,7 +1050,7 @@ void print_hello_world() in_func_code, func_dispatch dependencies_str = '/* BEGIN_CASE ' \ 'depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */\n' - data = '''%svoid test_func() + data = '''%sstatic void test_func() { } ''' % dependencies_str @@ -1127,13 +1127,13 @@ void func2() #if defined(MBEDTLS_ENTROPY_NV_SEED) #if defined(MBEDTLS_FS_IO) #line 13 "test_suite_ut.function" -void test_func1(void) +static void test_func1(void) { exit: ; } -void test_func1_wrapper( void ** params ) +static void test_func1_wrapper( void ** params ) { (void)params; @@ -1144,13 +1144,13 @@ void test_func1_wrapper( void ** params ) #if defined(MBEDTLS_ENTROPY_NV_SEED) #if defined(MBEDTLS_FS_IO) #line 19 "test_suite_ut.function" -void test_func2(void) +static void test_func2(void) { exit: ; } -void test_func2_wrapper( void ** params ) +static void test_func2_wrapper( void ** params ) { (void)params;