crypo 1.0 changes
diff --git a/api-tests/CMakeLists.txt b/api-tests/CMakeLists.txt
index 34aa48a..4588472 100644
--- a/api-tests/CMakeLists.txt
+++ b/api-tests/CMakeLists.txt
@@ -1,5 +1,5 @@
 #/** @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");
@@ -131,6 +131,27 @@
 list(APPEND PLATFORM_PSA_ISOLATION_LEVEL_OPTIONS 1 2 3)
 endif()
 
+# list of available spec version
+if("${SUITE}" STREQUAL "STORAGE" OR ${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE" OR ${SUITE} STREQUAL "PROTECTED_STORAGE")
+list(APPEND PSA_SPEC_VERSION
+	1.0-BETA2
+	1.0
+)
+elseif("${SUITE}" STREQUAL "CRYPTO")
+list(APPEND PSA_SPEC_VERSION
+        1.0-BETA1
+        1.0-BETA2
+        1.0-BETA3
+)
+elseif("${SUITE}" STREQUAL "INITIAL_ATTESTATION")
+list(APPEND PSA_SPEC_VERSION
+        1.0-BETA0
+        1.0.0
+        1.0.1
+        1.0.2
+)
+endif()
+
 message(STATUS "[PSA] : ----------Process input arguments- start-------------")
 
 # Check for TARGET command line argument
@@ -182,9 +203,9 @@
 set(PSA_TARGET_PAL_NSPE_LIB		pal_nspe)
 set(PSA_TARGET_VAL_NSPE_LIB		val_nspe)
 set(PSA_TARGET_TEST_COMBINE_LIB		test_combine)
-set(PSA_TARGET_DRIVER_PARTITION_LIB	driver_partition)
-set(PSA_TARGET_CLIENT_PARTITION_LIB	client_partition)
-set(PSA_TARGET_SERVER_PARTITION_LIB	server_partition)
+set(PSA_TARGET_DRIVER_PARTITION_LIB	tfm_psa_rot_partition_driver_partition)
+set(PSA_TARGET_CLIENT_PARTITION_LIB	tfm_app_rot_partition_client_partition)
+set(PSA_TARGET_SERVER_PARTITION_LIB	tfm_app_rot_partition_server_partition)
 if(${SUITE} STREQUAL "IPC")
 	set(PSA_SUITE_DIR		${PSA_ROOT_DIR}/ff/${SUITE_LOWER})
 	set(PSA_SUITE_OUT_DIR		${CMAKE_CURRENT_BINARY_DIR}/ff/${SUITE_LOWER})
@@ -203,12 +224,53 @@
 set(DATABASE_TABLE_NAME			target_database)
 set(DATABASE_TABLE_SECTION_NAME		"NOSECTION")
 set(TARGET_HEADER_GEN_INCLUDE_PATHS     "${PSA_ROOT_DIR}/val/nspe|${PSA_ROOT_DIR}/val/common|${PSA_ROOT_DIR}/platform/targets/common/nspe|${PSA_ROOT_DIR}/platform/targets/common/nspe/crypto|${PSA_ROOT_DIR}/platform/targets/${TARGET}/nspe")
-if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
-	set(TESTSUITE_DB			${PSA_SUITE_DIR}/its_testsuite.db)
-elseif((${SUITE} STREQUAL "PROTECTED_STORAGE") OR (${SUITE} STREQUAL "STORAGE"))
-	set(TESTSUITE_DB			${PSA_SUITE_DIR}/ps_testsuite.db)
+if(NOT DEFINED SPEC_VERSION)
+	if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+		set(TESTSUITE_DB			${PSA_SUITE_DIR}/its_testsuite.db)
+	elseif((${SUITE} STREQUAL "PROTECTED_STORAGE") OR (${SUITE} STREQUAL "STORAGE"))
+		set(TESTSUITE_DB			${PSA_SUITE_DIR}/ps_testsuite.db)
+	else()
+		set(TESTSUITE_DB			${PSA_SUITE_DIR}/testsuite.db)
+	endif()
 else()
-	set(TESTSUITE_DB			${PSA_SUITE_DIR}/testsuite.db)
+	if(${SUITE} STREQUAL "INTERNAL_TRUSTED_STORAGE")
+		if(${SPEC_VERSION} STREQUAL "1.0-BETA2")
+                	set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/its_1.0-beta2_testsuite.db)
+	        endif()
+		if(${SPEC_VERSION} STREQUAL "1.0")
+                	set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/its_1.0_testsuite.db)
+	        endif()
+	elseif((${SUITE} STREQUAL "PROTECTED_STORAGE") OR (${SUITE} STREQUAL "STORAGE"))
+		if(${SPEC_VERSION} STREQUAL "1.0-BETA2")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/ps_1.0-beta2_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/ps_1.0_testsuite.db)
+                endif()
+	elseif(${SUITE} STREQUAL "CRYPTO")
+                if(${SPEC_VERSION} STREQUAL "1.0-BETA1")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0-beta1_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0-BETA2")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0-beta2_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0-BETA3")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0-beta3_testsuite.db)
+                endif()
+        elseif(${SUITE} STREQUAL "INITIAL_ATTESTATION")
+                if(${SPEC_VERSION} STREQUAL "1.0-BETA0")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0-beta0_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0.0")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0.0_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0.1")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0.1_testsuite.db)
+                endif()
+                if(${SPEC_VERSION} STREQUAL "1.0.2")
+                        set(TESTSUITE_DB                        ${PSA_SUITE_DIR}/1.0.2_testsuite.db)
+                endif()
+        endif()
 endif()
 set(PSA_TESTLIST_FILE			${CMAKE_CURRENT_BINARY_DIR}/${SUITE_LOWER}_testlist.txt)
 set(PSA_TEST_ENTRY_LIST_INC		${CMAKE_CURRENT_BINARY_DIR}/test_entry_list.inc)
@@ -345,6 +407,16 @@
 	endif()
 endif()
 
+if(NOT DEFINED SPEC_VERSION)
+	message(STATUS "[PSA] : Default spec version")
+else()
+	if(NOT ${SPEC_VERSION} IN_LIST PSA_SPEC_VERSION)
+                message(FATAL_ERROR "[PSA] : Error: Unsupported value for -DSPEC_VERSION=${SPEC_VERSION}, supported values are : ${PSA_SPEC_VERSION} for ${SUITE}")
+	else()
+		message(STATUS "[PSA] : Testing ${SUITE} for spec version ${SPEC_VERSION}")
+	endif()
+endif()
+
 message(STATUS "[PSA] : ----------Process input arguments- complete-------------")
 
 
@@ -443,10 +515,12 @@
 
 # Check for supported toolchain/s
 if(${TOOLCHAIN} IN_LIST PSA_TOOLCHAIN_SUPPORT)
-        if(CROSS_COMPILE AND NOT (${TOOLCHAIN} IN_LIST CROSS_COMPILE_TOOLCHAIN_SUPPORT))
+	if (DEFINED CROSS_COMPILE)
+	    if(${CROSS_COMPILE} AND NOT (${TOOLCHAIN} IN_LIST CROSS_COMPILE_TOOLCHAIN_SUPPORT))
                 message(FATAL_ERROR "[PSA] : Error: CROSS_COMPILE not supported for this toolchain, supported toolchain are : ${CROSS_COMPILE_TOOLCHAIN_SUPPORT}")
-        endif()
-        include(${PSA_ROOT_DIR}/tools/cmake/compiler/${TOOLCHAIN}.cmake)
+            endif()
+	endif()
+    include(${PSA_ROOT_DIR}/tools/cmake/compiler/${TOOLCHAIN}.cmake)
 else()
         message(FATAL_ERROR "[PSA] : Error: Unsupported value for -DTOOLCHAIN=${TOOLCHAIN}, supported toolchain are : ${PSA_TOOLCHAIN_SUPPORT}")
 endif()