Remove direct writing to `test_info` from `*.function`

Add a new function `mbedtls_test_info_reset()` to remove direct writes to
`mbedtls_test_info`. This change still allows values to be read directly
however all writes are now done inside of `helpers.c`.

Also slightly reordered code to make it easier to read.

Signed-off-by: Chris Jones <christopher.jones@arm.com>
diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h
index 2ca85d4..258c6ba 100644
--- a/tests/include/test/helpers.h
+++ b/tests/include/test/helpers.h
@@ -71,6 +71,7 @@
 void mbedtls_test_platform_teardown( void );
 
 void mbedtls_test_fail( const char *test, int line_no, const char* filename );
+void mbedtls_test_skip( const char *test, int line_no, const char* filename );
 
 /** Set the test step number for failure reports.
  *
@@ -82,7 +83,7 @@
  */
 void mbedtls_test_set_step( unsigned long step );
 
-void mbedtls_test_skip( const char *test, int line_no, const char* filename );
+void mbedtls_test_info_reset( void );
 
 /**
  * \brief          This function decodes the hexadecimal representation of
diff --git a/tests/src/helpers.c b/tests/src/helpers.c
index 9bfd7e0..e323275 100644
--- a/tests/src/helpers.c
+++ b/tests/src/helpers.c
@@ -93,11 +93,6 @@
     mbedtls_test_info.filename = filename;
 }
 
-void mbedtls_test_set_step( unsigned long step )
-{
-    mbedtls_test_info.step = step;
-}
-
 void mbedtls_test_skip( const char *test, int line_no, const char* filename )
 {
     mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SKIPPED;
@@ -106,6 +101,20 @@
     mbedtls_test_info.filename = filename;
 }
 
+void mbedtls_test_set_step( unsigned long step )
+{
+    mbedtls_test_info.step = step;
+}
+
+void mbedtls_test_info_reset( void )
+{
+    mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SUCCESS;
+    mbedtls_test_info.step = (unsigned long)( -1 );
+    mbedtls_test_info.test = 0;
+    mbedtls_test_info.line_no = 0;
+    mbedtls_test_info.filename = 0;
+}
+
 int mbedtls_test_unhexify( unsigned char *obuf,
                            size_t obufmax,
                            const char *ibuf,
diff --git a/tests/suites/host_test.function b/tests/suites/host_test.function
index b5581b5..f345408 100644
--- a/tests/suites/host_test.function
+++ b/tests/suites/host_test.function
@@ -601,7 +601,7 @@
     }
 
     /* Initialize the struct that holds information about the last test */
-    memset( &mbedtls_test_info, 0, sizeof( mbedtls_test_info ) );
+    mbedtls_test_info_reset();
 
     /* Now begin to execute the tests in the testfiles */
     for ( testfile_index = 0;
@@ -683,8 +683,7 @@
             // If there are no unmet dependencies execute the test
             if( unmet_dep_count == 0 )
             {
-                mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SUCCESS;
-                mbedtls_test_info.step = (unsigned long)( -1 );
+                mbedtls_test_info_reset();
 
 #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
                 /* Suppress all output from the library unless we're verbose
diff --git a/tests/suites/target_test.function b/tests/suites/target_test.function
index 7866dcf..8afe70e 100644
--- a/tests/suites/target_test.function
+++ b/tests/suites/target_test.function
@@ -384,8 +384,7 @@
     while ( 1 )
     {
         ret = 0;
-        mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SUCCESS;
-        mbedtls_test_info.step = (unsigned long)( -1 );
+        mbedtls_test_info_reset();
         data_len = 0;
 
         data = receive_data( &data_len );
diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function
index 75c3fd4..21b3ab6 100644
--- a/tests/suites/test_suite_asn1parse.function
+++ b/tests/suites/test_suite_asn1parse.function
@@ -614,7 +614,7 @@
             cur = &head;
             while( *rest )
             {
-                ++mbedtls_test_info.step;
+                mbedtls_test_set_step( mbedtls_test_info.step + 1 );
                 TEST_ASSERT( cur != NULL );
                 TEST_EQUAL( cur->buf.tag, tag );
                 n = strtoul( rest, (char **) &rest, 0 );