Less obscure test suites template
diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py
index 26d1c29..ce6f88c 100755
--- a/tests/scripts/generate_test_code.py
+++ b/tests/scripts/generate_test_code.py
@@ -122,7 +122,7 @@
functions are populated with checks and return codes by this script.
Template file contains "replacement" fields that are formatted
-strings processed by Python str.format() method.
+strings processed by Python string.Template.substitute() method.
This script:
============
@@ -132,9 +132,9 @@
This script replaces following fields in the template and generates
the test source file:
-{test_common_helpers} <-- All common code from helpers.function
+$test_common_helpers <-- All common code from helpers.function
is substituted here.
-{functions_code} <-- Test functions are substituted here
+$functions_code <-- Test functions are substituted here
from the input test_suit_xyz.function
file. C preprocessor checks are generated
for the build dependencies specified
@@ -143,21 +143,21 @@
functions with code to expand the
string parameters read from the data
file.
-{expression_code} <-- This script enumerates the
+$expression_code <-- This script enumerates the
expressions in the .data file and
generates code to handle enumerated
expression Ids and return the values.
-{dep_check_code} <-- This script enumerates all
+$dep_check_code <-- This script enumerates all
build dependencies and generate
code to handle enumerated build
dependency Id and return status: if
the dependency is defined or not.
-{dispatch_code} <-- This script enumerates the functions
+$dispatch_code <-- This script enumerates the functions
specified in the input test data file
and generates the initializer for the
function table in the template
file.
-{platform_code} <-- Platform specific setup and test
+$platform_code <-- Platform specific setup and test
dispatch code.
"""
@@ -167,6 +167,7 @@
import os
import re
import sys
+import string
import argparse
@@ -967,7 +968,7 @@
for line_no, line in enumerate(template_f.readlines(), 1):
# Update line number. +1 as #line directive sets next line number
snippets['line_no'] = line_no + 1
- code = line.format(**snippets)
+ code = string.Template(line).substitute(**snippets)
c_f.write(code)
diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function
index 9b37782..2ba919c 100644
--- a/tests/suites/main_test.function
+++ b/tests/suites/main_test.function
@@ -3,17 +3,17 @@
* *** THIS FILE HAS BEEN MACHINE GENERATED ***
*
* This file has been machine generated using the script:
- * {generator_script}
+ * $generator_script
*
- * Test file : {test_file}
+ * Test file : $test_file
*
* The following files were used to create this file.
*
- * Main code file : {test_main_file}
- * Platform code file : {test_platform_file}
- * Helper file : {test_common_helper_file}
- * Test suite file : {test_case_file}
- * Test suite data : {test_case_data_file}
+ * Main code file : $test_main_file
+ * Platform code file : $test_platform_file
+ * Helper file : $test_common_helper_file
+ * Test suite file : $test_case_file
+ * Test suite data : $test_case_data_file
*
*
* This file is part of Mbed TLS (https://tls.mbed.org)
@@ -29,9 +29,9 @@
/*----------------------------------------------------------------------------*/
/* Common helper code */
-{test_common_helpers}
+$test_common_helpers
-#line {line_no} "suites/main_test.function"
+#line $line_no "suites/main_test.function"
/*----------------------------------------------------------------------------*/
@@ -40,9 +40,9 @@
#define TEST_SUITE_ACTIVE
-{functions_code}
+$functions_code
-#line {line_no} "suites/main_test.function"
+#line $line_no "suites/main_test.function"
/*----------------------------------------------------------------------------*/
@@ -54,7 +54,7 @@
* For optimizing space for embedded targets each expression/macro
* is identified by a unique identifier instead of string literals.
* Identifiers and evaluation code is generated by script:
- * {generator_script}
+ * $generator_script
*
* \param exp_id Expression identifier.
* \param out_value Pointer to int to hold the integer.
@@ -62,24 +62,24 @@
* \return 0 if exp_id is found. 1 otherwise.
*/
int get_expression( int32_t exp_id, int32_t * out_value )
-{{
+{
int ret = KEY_VALUE_MAPPING_FOUND;
(void) exp_id;
(void) out_value;
switch( exp_id )
- {{
-{expression_code}
-#line {line_no} "suites/main_test.function"
+ {
+$expression_code
+#line $line_no "suites/main_test.function"
default:
- {{
+ {
ret = KEY_VALUE_MAPPING_NOT_FOUND;
- }}
+ }
break;
- }}
+ }
return( ret );
-}}
+}
/**
@@ -87,27 +87,27 @@
* For optimizing space for embedded targets each dependency
* is identified by a unique identifier instead of string literals.
* Identifiers and check code is generated by script:
- * {generator_script}
+ * $generator_script
*
* \param exp_id Dependency identifier.
*
* \return DEPENDENCY_SUPPORTED if set else DEPENDENCY_NOT_SUPPORTED
*/
int dep_check( int dep_id )
-{{
+{
int ret = DEPENDENCY_NOT_SUPPORTED;
(void) dep_id;
switch( dep_id )
- {{
-{dep_check_code}
-#line {line_no} "suites/main_test.function"
+ {
+$dep_check_code
+#line $line_no "suites/main_test.function"
default:
break;
- }}
+ }
return( ret );
-}}
+}
/**
@@ -125,14 +125,14 @@
/**
* \brief Table of test function wrappers. Used by dispatch_test().
* This table is populated by script:
- * {generator_script}
+ * $generator_script
*
*/
TestWrapper_t test_funcs[] =
-{{
-{dispatch_code}
-#line {line_no} "suites/main_test.function"
-}};
+{
+$dispatch_code
+#line $line_no "suites/main_test.function"
+};
/**
@@ -145,25 +145,25 @@
* DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
*/
int dispatch_test( int func_idx, void ** params )
-{{
+{
int ret = DISPATCH_TEST_SUCCESS;
TestWrapper_t fp = NULL;
if ( func_idx < (int)( sizeof( test_funcs ) / sizeof( TestWrapper_t ) ) )
- {{
+ {
fp = test_funcs[func_idx];
if ( fp )
fp( params );
else
- ret = ( DISPATCH_UNSUPPORTED_SUITE );
- }}
+ ret = DISPATCH_UNSUPPORTED_SUITE;
+ }
else
- {{
- ret = ( DISPATCH_TEST_FN_NOT_FOUND );
- }}
+ {
+ ret = DISPATCH_TEST_FN_NOT_FOUND;
+ }
return( ret );
-}}
+}
/**
@@ -176,28 +176,28 @@
* DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
*/
int check_test( int func_idx )
-{{
+{
int ret = DISPATCH_TEST_SUCCESS;
TestWrapper_t fp = NULL;
if ( func_idx < (int)( sizeof(test_funcs)/sizeof( TestWrapper_t ) ) )
- {{
+ {
fp = test_funcs[func_idx];
if ( fp == NULL )
- ret = ( DISPATCH_UNSUPPORTED_SUITE );
- }}
+ ret = DISPATCH_UNSUPPORTED_SUITE;
+ }
else
- {{
- ret = ( DISPATCH_TEST_FN_NOT_FOUND );
- }}
+ {
+ ret = DISPATCH_TEST_FN_NOT_FOUND;
+ }
return( ret );
-}}
+}
-{platform_code}
+$platform_code
-#line {line_no} "suites/main_test.function"
+#line $line_no "suites/main_test.function"
/*----------------------------------------------------------------------------*/
/* Main Test code */
@@ -212,17 +212,17 @@
* \return Exit code.
*/
int main( int argc, const char *argv[] )
-{{
+{
int ret = platform_setup();
if( ret != 0 )
- {{
+ {
mbedtls_fprintf( stderr,
"FATAL: Failed to initialize platform - error %d\n",
ret );
return( -1 );
- }}
+ }
ret = execute_tests( argc, argv );
platform_teardown();
return( ret );
-}}
+}