Add support for per test suite helper functions
diff --git a/tests/scripts/generate_code_ut.py b/tests/scripts/generate_code_ut.py
index bc9f6b6..383f029 100644
--- a/tests/scripts/generate_code_ut.py
+++ b/tests/scripts/generate_code_ut.py
@@ -280,9 +280,9 @@
         return line
 
 
-class ParseSuiteHeaders(TestCase):
+class ParseUntilPattern(TestCase):
     """
-    Test Suite for testing parse_suite_headers().
+    Test Suite for testing parse_until_pattern().
     """
 
     def test_suite_headers(self):
@@ -302,7 +302,7 @@
 #define ECP_PF_UNKNOWN     -1
 '''
         s = StringIOWrapper('test_suite_ut.function', data, line_no=0)
-        headers = parse_suite_headers(s)
+        headers = parse_until_pattern(s, END_HEADER_REGEX)
         self.assertEqual(headers, expected)
 
     def test_line_no(self):
@@ -323,7 +323,7 @@
 #define ECP_PF_UNKNOWN     -1
 ''' % (offset_line_no + 1)
         s = StringIOWrapper('test_suite_ut.function', data, offset_line_no)
-        headers = parse_suite_headers(s)
+        headers = parse_until_pattern(s, END_HEADER_REGEX)
         self.assertEqual(headers, expected)
 
     def test_no_end_header_comment(self):
@@ -337,7 +337,7 @@
 
 '''
         s = StringIOWrapper('test_suite_ut.function', data)
-        self.assertRaises(InvalidFileFormat, parse_suite_headers, s)
+        self.assertRaises(InvalidFileFormat, parse_until_pattern, s, END_HEADER_REGEX)
 
 
 class ParseSuiteDeps(TestCase):
@@ -620,15 +620,15 @@
     Test Suite for testing parse_functions()
     """
 
-    @patch("generate_code.parse_suite_headers")
-    def test_begin_header(self, parse_suite_headers_mock):
+    @patch("generate_code.parse_until_pattern")
+    def test_begin_header(self, parse_until_pattern_mock):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test that begin header is checked and parse_until_pattern() is called.
         :return: 
         """
         def stop(this):
             raise Exception
-        parse_suite_headers_mock.side_effect = stop
+        parse_until_pattern_mock.side_effect = stop
         data = '''/* BEGIN_HEADER */
 #include "mbedtls/ecp.h"
 
@@ -637,13 +637,34 @@
 '''
         s = StringIOWrapper('test_suite_ut.function', data)
         self.assertRaises(Exception, parse_functions, s)
-        parse_suite_headers_mock.assert_called_with(s)
+        parse_until_pattern_mock.assert_called_with(s, END_HEADER_REGEX)
+        self.assertEqual(s.line_no, 2)
+
+    @patch("generate_code.parse_until_pattern")
+    def test_begin_helper(self, parse_until_pattern_mock):
+        """
+        Test that begin helper is checked and parse_until_pattern() is called.
+        :return: 
+        """
+        def stop(this):
+            raise Exception
+        parse_until_pattern_mock.side_effect = stop
+        data = '''/* BEGIN_SUITE_HELPERS */
+void print_helloworld()
+{
+    printf ("Hello World!\n");
+}
+/* END_SUITE_HELPERS */
+'''
+        s = StringIOWrapper('test_suite_ut.function', data)
+        self.assertRaises(Exception, parse_functions, s)
+        parse_until_pattern_mock.assert_called_with(s, END_SUITE_HELPERS_REGEX)
         self.assertEqual(s.line_no, 2)
 
     @patch("generate_code.parse_suite_deps")
     def test_begin_dep(self, parse_suite_deps_mock):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test that begin dep is checked and parse_suite_deps() is called.
         :return: 
         """
         def stop(this):
@@ -662,7 +683,7 @@
     @patch("generate_code.parse_function_deps")
     def test_begin_function_dep(self, parse_function_deps_mock):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test that begin dep is checked and parse_function_deps() is called.
         :return: 
         """
         def stop(this):
@@ -683,7 +704,7 @@
     @patch("generate_code.parse_function_deps")
     def test_return(self, parse_function_deps_mock, parse_function_code_mock):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test that begin case is checked and parse_function_code() is called.
         :return: 
         """
         def stop(this):
@@ -718,7 +739,7 @@
 
     def test_parsing(self):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test case parsing.
         :return: 
         """
         data = '''/* BEGIN_HEADER */
@@ -811,7 +832,7 @@
 
     def test_same_function_name(self):
         """
-        Test that begin header is checked and parse_suite_headers() is called.
+        Test name conflict.
         :return: 
         """
         data = '''/* BEGIN_HEADER */