1 /* 2 * Copyright (c) 2001-2019, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef __TST_HOST_LOG_H__ 8 #define __TST_HOST_LOG_H__ 9 10 #include <stdint.h> 11 #include <stdio.h> 12 13 14 #define TEST_PRINTF_ERROR(format, ...) {\ 15 fprintf(stderr, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 16 fprintf(stderr, "\n");\ 17 fflush(stderr);\ 18 } 19 #define TEST_FPRINTF_ERROR(fd, format, ...) {\ 20 fprintf(fd, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 21 fprintf(fd, "\n");\ 22 fflush(fd);\ 23 fprintf(stderr, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 24 fprintf(stderr, "\n");\ 25 fflush(stderr);\ 26 } 27 #define TEST_PRINTF_MESSAGE(format, ...) {\ 28 fprintf(stderr, format, ##__VA_ARGS__);\ 29 fflush(stderr);\ 30 } 31 32 //to print buffers during fips tests without debug compilation 33 #define TEST_PRINT_WORD_BUFF_TRACE(buffName, size, buff) {\ 34 unsigned int i = 0;\ 35 TEST_PRINTF_MESSAGE("printing %s, word size %d", buffName, (unsigned int)size);\ 36 for (i=0; i< size; i++) {\ 37 if (!(i%4)) {\ 38 TEST_PRINTF_MESSAGE("\n\t");\ 39 }\ 40 TEST_PRINTF_MESSAGE(" 0x%08X ", (unsigned int)(*((unsigned int *)buff+i)));\ 41 }\ 42 TEST_PRINTF_MESSAGE("\n");\ 43 } 44 45 #define TEST_PRINT_BYTE_BUFF_TRACE(buffName, size, buff) {\ 46 unsigned int i = 0;\ 47 TEST_PRINTF_MESSAGE("printing %s, byte size %d", buffName, (unsigned int)size);\ 48 for (i=0; i< size; i++) {\ 49 if (!(i%16)) {\ 50 TEST_PRINTF_MESSAGE("\n\t");\ 51 }\ 52 TEST_PRINTF_MESSAGE("0x%02X ", (unsigned char)(*((unsigned char *)buff+i)));\ 53 }\ 54 TEST_PRINTF_MESSAGE("\n");\ 55 } 56 57 #define TEST_PRINTF_TRACE(format, ...) {\ 58 fprintf(stdout, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 59 fprintf(stdout, "\n");\ 60 fflush(stdout);\ 61 } 62 63 #ifdef TEST_DEBUG 64 #define TEST_FPRINTF(fd, format, ...) {\ 65 fprintf(fd, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 66 fprintf(fd, "\n");\ 67 fflush(fd);\ 68 } 69 #define TEST_PRINTF(format, ...) {\ 70 fprintf(stdout, "%s(): " format, __FUNCTION__, ##__VA_ARGS__);\ 71 fprintf(stdout, "\n");\ 72 fflush(stdout);\ 73 } 74 75 #define TEST_PRINTF1(format, ...) {\ 76 fprintf(stdout, " " format, ##__VA_ARGS__);\ 77 fflush(stdout);\ 78 } 79 80 #define TEST_FPRINTF1(fd, format, ...) {\ 81 fprintf(fd, " " format, ##__VA_ARGS__);\ 82 fflush(fd);\ 83 } 84 85 #define TEST_PRINT_WORD_BUFF(buffName, size, buff) {\ 86 unsigned int i = 0;\ 87 TEST_PRINTF("printing %s, word size %d", buffName, (unsigned int)size);\ 88 for (i=0; i< size; i++) {\ 89 if (!(i%4)) {\ 90 TEST_PRINTF1("\n\t");\ 91 }\ 92 TEST_PRINTF1(" 0x%08X ", (unsigned int)(*((unsigned int *)buff+i)));\ 93 }\ 94 TEST_PRINTF1("\n");\ 95 } 96 97 98 #define TEST_PRINT_BYTE_BUFF(buffName, size, buff) {\ 99 unsigned int i = 0;\ 100 TEST_PRINTF("printing %s, byte size %d", buffName, (unsigned int)size);\ 101 for (i=0; i< size; i++) {\ 102 if (!(i%16)) {\ 103 TEST_PRINTF1("\n\t");\ 104 }\ 105 TEST_PRINTF1("0x%02X ", (unsigned char)(*((unsigned char *)buff+i)));\ 106 }\ 107 TEST_PRINTF1("\n");\ 108 } 109 110 #define TEST_PRINT_BYTE_BUFFP(buffName, size, buff) {\ 111 unsigned int idxT = 0;\ 112 uint8_t *buffP = (uint8_t *)(buff);\ 113 TEST_PRINTF("printing %s, byte size %d", buffName, (unsigned int)size);\ 114 for (idxT=0; idxT< size; idxT++) {\ 115 if (!(idxT%16)) {\ 116 TEST_PRINTF1("\n\t");\ 117 }\ 118 TEST_PRINTF1("0x%02X ", buffP[idxT]);\ 119 }\ 120 TEST_PRINTF1("\n");\ 121 } 122 123 #define TEST_FPRINT_LONG_NUM(fd, buffName, buff, size) {\ 124 unsigned int i = 0;\ 125 TEST_FPRINTF(fd, "printing %s, byte size %d", buffName, (unsigned int)size);\ 126 TEST_FPRINTF1(fd, "0x");\ 127 for (i=0; i< size; i++) {\ 128 fprintf(fd, "%02X", (unsigned char)(*((unsigned char *)buff+i)));\ 129 }\ 130 fprintf(fd, "\n");\ 131 } 132 133 #define TEST_FPRINT_BYTE_BUFF(fd, buffName, buff, size) {\ 134 unsigned int i = 0;\ 135 TEST_FPRINTF(fd, "printing %s, byte size %d", buffName, (unsigned int)size);\ 136 for (i=0; i< size; i++) {\ 137 if (!(i%16)) {\ 138 TEST_FPRINTF1(fd, "\n\t");\ 139 }\ 140 TEST_FPRINTF1(fd, "0x%02X ", (unsigned char)(*((unsigned char *)buff+i)));\ 141 }\ 142 TEST_FPRINTF1(fd, "\n");\ 143 } 144 145 #define TEST_FPRINT_BYTE_BUFF_MAX(fd, buffName, buff, size, maxSize) {\ 146 int i = 0;\ 147 int minSize = ((size>maxSize)?maxSize:size);\ 148 TEST_FPRINTF(fd, "printing %s, buff size %d, max size %d", buffName, (unsigned int)size, (unsigned int)maxSize);\ 149 for (i=0; i< minSize; i++) {\ 150 if (!(i%16)) {\ 151 TEST_FPRINTF1(fd, "\n\t");\ 152 }\ 153 TEST_FPRINTF1(fd, "0x%02X ", (unsigned char)(*((unsigned char *)buff+i)));\ 154 }\ 155 TEST_FPRINTF1(fd, "\n");\ 156 } 157 158 #else 159 #define TEST_FPRINTF(fd, format, ...) do{ }while(0) 160 #define TEST_PRINTF(format, ...) do{ }while(0) 161 #define TEST_PRINTF1(format, ...) do{ }while(0) 162 #define TEST_PRINT_BYTE_BUFF(str, size, buff) do{ }while(0) 163 #define TEST_PRINT_BYTE_BUFFP(buffName, size, buff) do{ }while(0) 164 #define TEST_PRINT_WORD_BUFF(str, size, buff) do{ }while(0) 165 #define TEST_FPRINT_LONG_NUM(fd, buffName, buff, size) do{ }while(0) 166 #define TEST_FPRINT_BYTE_BUFF(fd, buffName, buff, size) do{ }while(0) 167 #define TEST_FPRINT_BYTE_BUFF_MAX(fd, buffName, buff, size, maxSize) do{ }while(0) 168 #endif 169 #endif /*__TST_HOST_LOG_H__*/ 170