From 3cff768ad4d6149c34188ad3dd081e3587e9e6aa Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 20 Jun 2019 12:54:43 +0200 Subject: [PATCH] Move the one non-crypto-specific PSA helper macro to a new header Create a new header file psa_helpers.h and put the one helper macro that isn't specific to PSA crypto there. Use this header file in the ITS test suite. --- tests/Makefile | 1 + tests/psa_crypto_helpers.h | 19 ++++-------- tests/psa_helpers.h | 37 ++++++++++++++++++++++++ tests/suites/test_suite_psa_its.function | 2 +- 4 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 tests/psa_helpers.h diff --git a/tests/Makefile b/tests/Makefile index e2a32a12f..52f916356 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -105,6 +105,7 @@ $(BINARIES): %$(EXEXT): %.c $(DEP) $(CC) $(LOCAL_CFLAGS) $(CFLAGS) $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(filter test_suite_psa_crypto%, $(BINARIES)): psa_crypto_helpers.h +$(filter test_suite_psa_%, $(BINARIES)): psa_helpers.h clean: ifndef WINDOWS diff --git a/tests/psa_crypto_helpers.h b/tests/psa_crypto_helpers.h index b1c5968c9..26d562344 100644 --- a/tests/psa_crypto_helpers.h +++ b/tests/psa_crypto_helpers.h @@ -1,5 +1,5 @@ /* - * Helper functions for tests that use the PSA API. + * Helper functions for tests that use the PSA Crypto API. */ /* Copyright (C) 2019, ARM Limited, All Rights Reserved * SPDX-License-Identifier: Apache-2.0 @@ -22,18 +22,9 @@ #ifndef PSA_CRYPTO_HELPERS_H #define PSA_CRYPTO_HELPERS_H -#if defined(MBEDTLS_PSA_CRYPTO_SPM) -#include "spm/psa_defs.h" -#endif -#include +#include "psa_helpers.h" -/** Evaluate an expression and fail the test case if it returns an error. - * - * \param expr The expression to evaluate. This is typically a call - * to a \c psa_xxx function that returns a value of type - * #psa_status_t. - */ -#define PSA_ASSERT( expr ) TEST_EQUAL( ( expr ), PSA_SUCCESS ) +#include static int test_helper_is_psa_pristine( int line, const char *file ) { @@ -60,7 +51,7 @@ static int test_helper_is_psa_pristine( int line, const char *file ) return( msg == NULL ); } -/** Check that no PSA slots are in use. +/** Check that no PSA Crypto key slots are in use. */ #define ASSERT_PSA_PRISTINE( ) \ do \ @@ -76,7 +67,7 @@ static void test_helper_psa_done( int line, const char *file ) mbedtls_psa_crypto_free( ); } -/** Shut down the PSA subsystem. Expect a clean shutdown, with no slots +/** Shut down the PSA Crypto subsystem. Expect a clean shutdown, with no slots * in use. */ #define PSA_DONE( ) test_helper_psa_done( __LINE__, __FILE__ ) diff --git a/tests/psa_helpers.h b/tests/psa_helpers.h new file mode 100644 index 000000000..79f683707 --- /dev/null +++ b/tests/psa_helpers.h @@ -0,0 +1,37 @@ +/* + * Helper functions for tests that use any PSA API. + */ +/* Copyright (C) 2019, ARM Limited, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) + */ + +#ifndef PSA_HELPERS_H +#define PSA_HELPERS_H + +#if defined(MBEDTLS_PSA_CRYPTO_SPM) +#include "spm/psa_defs.h" +#endif + +/** Evaluate an expression and fail the test case if it returns an error. + * + * \param expr The expression to evaluate. This is typically a call + * to a \c psa_xxx function that returns a value of type + * #psa_status_t. + */ +#define PSA_ASSERT( expr ) TEST_EQUAL( ( expr ), PSA_SUCCESS ) + +#endif /* PSA_HELPERS_H */ diff --git a/tests/suites/test_suite_psa_its.function b/tests/suites/test_suite_psa_its.function index 873e1a21a..8b1500599 100644 --- a/tests/suites/test_suite_psa_its.function +++ b/tests/suites/test_suite_psa_its.function @@ -1,7 +1,7 @@ /* BEGIN_HEADER */ #include "../library/psa_crypto_its.h" -#define PSA_ASSERT( expr ) TEST_EQUAL( ( expr ), PSA_SUCCESS ) +#include "psa_helpers.h" /* Internal definitions of the implementation, copied for the sake of * some of the tests and of the cleanup code. */