psa arch test v1.3 release candidate 1
diff --git a/api-tests/tools/cmake/compiler/HOST_GCC.cmake b/api-tests/tools/cmake/compiler/HOST_GCC.cmake
index 2071b12..0282643 100644
--- a/api-tests/tools/cmake/compiler/HOST_GCC.cmake
+++ b/api-tests/tools/cmake/compiler/HOST_GCC.cmake
@@ -50,4 +50,4 @@
 	set(CMAKE_C_FLAGS	"-g -Wall -Werror -Werror -std=c99")
 	message(STATUS "[PSA] : ${_LNG}  compiler used '${CMAKE_${_LNG}_COMPILER}'")
 endforeach()
-add_definitions(-DHOST_GCC_MISSING_CRYPTO_1_0=1)
+add_definitions(-DMISSING_CRYPTO_1_0=1)
diff --git a/api-tests/tools/scripts/gen_tests_list.py b/api-tests/tools/scripts/gen_tests_list.py
index 22727fb..f654100 100644
--- a/api-tests/tools/scripts/gen_tests_list.py
+++ b/api-tests/tools/scripts/gen_tests_list.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 #/** @file
-# * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
+# * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
 # * SPDX-License-Identifier : Apache-2.0
 # *
 # * Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,38 +18,42 @@
 
 import sys
 
-if (len(sys.argv) != 13):
+if (len(sys.argv) != 14):
         print("\nScript requires following inputs")
         print("\narg1  : <INPUT  SUITE identifier>")
         print("\narg2  : <INPUT  testsuite.db file>")
         print("\narg3  : <INPUT  panic test>")
-        print("\narg4  : <OUTPUT testlist file>")
-        print("\narg5  : <OUTPUT test_entry_list>")
-        print("\narg6  : <OUTPUT test_entry_fn_declare_list>")
-        print("\narg7  : <OUTPUT client_tests_list_declare>")
-        print("\narg8  : <OUTPUT client_tests_list>")
-        print("\narg9  : <OUTPUT server_tests_list_declare>")
-        print("\narg10 : <OUTPUT server_tests_list>")
-        print("\narg11 : <OUTPUT Suite test start number")
-        print("\narg12 : <OUTPUT Suite test end number")
+        print("\narg4  : <INPUT  tests coverage>")
+        print("\narg5  : <OUTPUT testlist file>")
+        print("\narg6  : <OUTPUT test_entry_list>")
+        print("\narg7  : <OUTPUT test_entry_fn_declare_list>")
+        print("\narg8  : <OUTPUT client_tests_list_declare>")
+        print("\narg9  : <OUTPUT client_tests_list>")
+        print("\narg10  : <OUTPUT server_tests_list_declare>")
+        print("\narg11 : <OUTPUT server_tests_list>")
+        print("\narg12 : <OUTPUT Suite test start number")
+        print("\narg13 : <OUTPUT Suite test end number")
         sys.exit(1)
 
 suite                      = sys.argv[1]
 testsuite_db_file          = sys.argv[2]
 panic_tests_included       = int(sys.argv[3])
-testlist_file              = sys.argv[4]
-test_entry_list            = sys.argv[5]
-test_entry_fn_declare_list = sys.argv[6]
-client_tests_list_declare  = sys.argv[7]
-client_tests_list          = sys.argv[8]
-server_tests_list_declare  = sys.argv[9]
-server_tests_list          = sys.argv[10]
-if sys.argv[11] != "None":
-	suite_test_start_number    = int(sys.argv[11])
+tests_coverage             = sys.argv[4]
+testlist_file              = sys.argv[5]
+test_entry_list            = sys.argv[6]
+test_entry_fn_declare_list = sys.argv[7]
+client_tests_list_declare  = sys.argv[8]
+client_tests_list          = sys.argv[9]
+server_tests_list_declare  = sys.argv[10]
+server_tests_list          = sys.argv[11]
+
+
+if sys.argv[12] != "None":
+	suite_test_start_number    = int(sys.argv[12])
 else:
 	suite_test_start_number    = 0
-if sys.argv[12] != "None":
-	suite_test_end_number      = int(sys.argv[12])
+if sys.argv[13] != "None":
+	suite_test_end_number      = int(sys.argv[13])
 else:
 	suite_test_end_number      = sys.maxsize
 
@@ -66,12 +70,26 @@
 				if (('test_' == line[0:5]) and
 				    (int(line[6:9]) >= suite_test_start_number) and
 				    (int(line[6:9]) <= suite_test_end_number)):
-					if ((panic_tests_included == 1) and ("panic" not in line)):
-						o_f.write(line)
-					elif ((panic_tests_included == 1) and ("panic" in line)):
-						o_f.write(line[0:line.find(',')]+'\n')
-					elif ((panic_tests_included == 0) and ("panic" not in line)):
-						o_f.write(line)
+					if (panic_tests_included == 0):
+						if (tests_coverage == "ALL"):
+							if (("panic" not in line) and ("failing" not in line)):
+								o_f.write(line)
+							if (("panic" not in line) and ("failing" in line)):
+								o_f.write(line[0:line.find(',')]+'\n')
+						if (tests_coverage == "PASS"):
+							if (("panic" not in line) and ("failing" not in line)):
+								o_f.write(line)
+					if (panic_tests_included == 1):
+						if (tests_coverage == "ALL"):
+							if (("panic" not in line) and ("failing" not in line)):
+								o_f.write(line)
+							else:
+								o_f.write(line[0:line.find(',')]+'\n')
+						if (tests_coverage == "PASS"):
+							if (("panic" not in line) and ("failing" not in line)):
+								o_f.write(line)
+							if (("panic" in line) and ("failing" not in line)):
+								o_f.write(line[0:line.find(',')]+'\n')
 
 def gen_test_entry_info():
 	"""