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.
This commit is contained in:
Gilles Peskine 2019-06-20 12:54:43 +02:00
parent 1838e82190
commit 3cff768ad4
4 changed files with 44 additions and 15 deletions

View File

@ -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

View File

@ -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 <psa/crypto.h>
#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 <psa/crypto.h>
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__ )

37
tests/psa_helpers.h Normal file
View File

@ -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 */

View File

@ -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. */