diff --git a/tests/Makefile b/tests/Makefile
index f0da1cf..c544c8e 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -176,6 +176,8 @@
 
 .PHONY: all check test clean
 
+all: $(BINARIES)
+
 $(DEP):
 	$(MAKE) -C ../library
 
@@ -184,12 +186,11 @@
 C_FILES := $(addsuffix .c,$(APPS))
 
 .SECONDEXPANSION:
-$(C_FILES): %.c: suites/$$(func.$$*).function suites/%.data scripts/gen_mbed_code.py suites/helpers.function suites/mbed_test.function suites/desktop_test.function
+$(C_FILES): %.c: suites/$$(func.$$*).function suites/%.data scripts/generate_code.py suites/helpers.function suites/main_test.function suites/desktop_test.function
 	echo "  Gen   $@"
-#	perl scripts/generate_code.pl suites $(func.$*) $*
-	python scripts/gen_mbed_code.py -f suites/$(func.$*).function \
+	python scripts/generate_code.py -f suites/$(func.$*).function \
 		-d suites/$*.data \
-		-t suites/mbed_test.function \
+		-t suites/main_test.function \
 		-p suites/desktop_test.function \
 		-s suites  \
 		--help-file suites/helpers.function \
@@ -201,9 +202,6 @@
 	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) $<	$(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 
 
-all: $(BINARIES)
-
-
 clean:
 ifndef WINDOWS
 	rm -rf $(APPS) *.c *.data TESTS
@@ -217,8 +215,8 @@
 
 test: check
 
-# Create separate targets for generating mbed-os tests.
-MBED_APPS := $(addprefix mbed_,$(APPS))
+# Create separate targets for generating embedded tests.
+EMBEDDED_TESTS := $(addprefix embedded_,$(APPS))
 
 # FIXME: description needs change
 # Each test suite name is stripped off of prefix test_suite_. mbed-os test dir
@@ -228,15 +226,15 @@
 # name is used as the test group dir.
 
 .SECONDEXPANSION:
-$(MBED_APPS): mbed_%: suites/$$(func.$$*).function suites/%.data scripts/gen_mbed_code.py suites/helpers.function suites/mbed_test.function suites/embedded_test.function
+$(EMBEDDED_TESTS): embedded_%: suites/$$(func.$$*).function suites/%.data scripts/generate_code.py suites/helpers.function suites/main_test.function suites/embedded_test.function
 	echo "  Gen  ./TESTS/mbedtls/$*/$*.c"
-	python scripts/gen_mbed_code.py -f suites/$(func.$*).function \
+	python scripts/generate_code.py -f suites/$(func.$*).function \
 		-d suites/$*.data \
-		-t suites/mbed_test.function \
+		-t suites/main_test.function \
 		-p suites/embedded_test.function \
 		-s suites  \
 		--help-file suites/helpers.function \
 		-o ./TESTS/mbedtls/$*
 
-gen-mbed-test: $(MBED_APPS)
+gen-embedded-test: $(EMBEDDED_TESTS)
 
diff --git a/tests/scripts/generate_code.py b/tests/scripts/generate_code.py
index 17f70d3..f59eb76 100644
--- a/tests/scripts/generate_code.py
+++ b/tests/scripts/generate_code.py
@@ -27,14 +27,14 @@
 <output dir>/
 |-- host_tests/
 |   |-- mbedtls_test.py
-|   |-- suites/
-|   |   |-- *.data files
 |   |-- mbedtls/
 |   |   |-- <test suite #1>/
 |   |   |    |-- main.c
+|   |   |    |-- *.data files
 |   |   ...
 |   |   |-- <test suite #n>/
 |   |   |    |-- main.c
+|   |   |    |-- *.data files
 |   |   |
 """
 
@@ -504,7 +504,7 @@
     return dep_check_code, expression_code
 
 
-def gen_mbed_code(funcs_file, data_file, template_file, platform_file, help_file, suites_dir, c_file, out_data_file):
+def generate_code(funcs_file, data_file, template_file, platform_file, help_file, suites_dir, c_file, out_data_file):
     """
     Generate mbed-os test code.
 
@@ -627,7 +627,7 @@
         if not os.path.exists(d):
             os.makedirs(d)
 
-    gen_mbed_code(args.funcs_file, args.data_file, args.template_file, args.platform_file,
+    generate_code(args.funcs_file, args.data_file, args.template_file, args.platform_file,
                   args.help_file, args.suites_dir, out_c_file, out_data_file)
 
 
diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function
index cd7f360..0dcab7d 100644
--- a/tests/suites/main_test.function
+++ b/tests/suites/main_test.function
@@ -1,4 +1,4 @@
-#line 2 "suites/mbed_test.function"
+#line 2 "suites/main_test.function"
 /*
  * *** THIS FILE HAS BEEN MACHINE GENERATED ***
  *
@@ -31,7 +31,7 @@
 
 {test_common_helpers}
 
-#line {line_no} "suites/mbed_test.function"
+#line {line_no} "suites/main_test.function"
 
 
 /*----------------------------------------------------------------------------*/
@@ -44,7 +44,7 @@
 
 {functions_code}
 
-#line {line_no} "suites/mbed_test.function"
+#line {line_no} "suites/main_test.function"
 
 
 /*----------------------------------------------------------------------------*/
@@ -66,7 +66,7 @@
 int get_expression( int32_t exp_id, int32_t * out_value )
 {{
 {expression_code}
-#line {line_no} "suites/mbed_test.function"
+#line {line_no} "suites/main_test.function"
     {{
         return( KEY_VALUE_MAPPING_NOT_FOUND );
     }}
@@ -88,7 +88,7 @@
 int dep_check( int dep_id )
 {{
 {dep_check_code}
-#line {line_no} "suites/mbed_test.function"
+#line {line_no} "suites/main_test.function"
     {{
          return( DEPENDENCY_NOT_SUPPORTED );
     }}
@@ -115,8 +115,8 @@
  */
 TestWrapper_t test_funcs[] =
 {{
-{dispatch_code}
-#line {line_no} "suites/mbed_test.function"
+{dispatch_code} 
+#line {line_no} "suites/main_test.function"
 }};
 
 
@@ -153,7 +153,7 @@
 
 {platform_code}
 
-#line {line_no} "suites/mbed_test.function"
+#line {line_no} "suites/main_test.function"
 
 /*----------------------------------------------------------------------------*/
 /* Main Test code */
