| /* SPDX-License-Identifier: BSD-2-Clause */ |
| /* |
| * Copyright (c) 2014, STMicroelectronics International N.V. |
| * All rights reserved. |
| */ |
| #ifndef TB_MACROS_H |
| #define TB_MACROS_H |
| |
| #include <tee_internal_api_extensions.h> |
| |
| #define TB_HEADER(str) \ |
| printf("\n*********** TESTBENCH ***********" \ |
| "\n*** RUNNING: <<< %s >>>" \ |
| "\n*********************************\n\n", str) |
| |
| #define TB_FOOTER(str) \ |
| printf("\n*********** TESTBENCH ***********" \ |
| "\n*** PASSED: <<< %s >>>" \ |
| "\n*********************************\n\n", str) |
| |
| #define TB_INFO(str) printf("*** INFO : %s \n", (str)) |
| |
| #define HALT \ |
| { \ |
| printf("\n*** FAILED ***" \ |
| "\nTestbench halted at line %d in function %s\n", \ |
| __LINE__, __func__); \ |
| printf("\nWaiting for keypress to enable debugging.\n"); \ |
| TEE_Panic(0); \ |
| } |
| |
| #define STARTING \ |
| printf("\n*********** TESTBENCH ***********" \ |
| "\n*** For the GlobalPlatform Math API" \ |
| "\n*********************************\n\n") |
| |
| #define ALL_PASSED \ |
| printf("\n*********** TESTBENCH ***********" \ |
| "\n*** ALL TESTS PASSED ***" \ |
| "\n*********************************\n\n") |
| |
| /* |
| * DEF_BIGINT defines and initialize a BigInt with name and size. |
| */ |
| #define DEF_BIGINT(name, size) \ |
| TEE_BigInt *name; \ |
| size_t name##_size; \ |
| name##_size = TEE_BigIntSizeInU32(size); \ |
| name = (TEE_BigInt *)TEE_Malloc(name##_size * sizeof(TEE_BigInt), 0); \ |
| TEE_BigIntInit(name, name##_size) |
| |
| /* |
| * DEL_BIGINT frees the BigInt. |
| */ |
| #define DEL_BIGINT(name) TEE_Free(name) |
| |
| /* |
| * TB_PRINT_BIGINT prints the mpanum in base 16. |
| */ |
| #define TB_PRINT_BIGINT(n) \ |
| do { \ |
| char *str; \ |
| str = TEE_BigIntConvertToString(NULL, TEE_STRING_MODE_HEX_UC, 0, (n)); \ |
| printf("%s\n", str); \ |
| TEE_Free(str); \ |
| } while (0) |
| |
| #endif |