1 /* ========================================== 2 Unity Project - A Test Framework for C 3 Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 4 [Released under MIT License. Please refer to license.txt for details] 5 ========================================== */ 6 7 #ifndef UNITY_FRAMEWORK_H 8 #define UNITY_FRAMEWORK_H 9 10 #define UNITY 11 12 #include "unity_internals.h" 13 14 enum _unity_module 15 { 16 k_unity_i2c = 1, 17 k_unity_acmp = 2, 18 k_unity_adc12 = 3, 19 k_unity_adc16 = 4, 20 k_unity_cmp = 5, 21 k_unity_cadc = 6, 22 k_unity_dac = 7, 23 k_unity_dac32 = 8, 24 k_unity_dcdc = 9, 25 k_unity_enc = 10, 26 k_unity_pdb = 11, 27 k_unity_uart = 12, 28 k_unity_crc = 13, 29 k_unity_ltc = 14, 30 k_unity_rnga = 15, 31 k_unity_trng = 16, 32 k_unity_vref = 17, 33 k_unity_flexbus = 18, 34 k_unity_dspi = 19, 35 k_unity_lpspi = 20, 36 k_unity_sai = 21, 37 k_unity_mmcau = 22, 38 k_unity_sdramc = 23, 39 k_unity_aoi = 24, 40 k_unity_mmdvsq = 25, 41 k_unity_mmau = 26, 42 k_unity_xbar = 27, 43 k_unity_xbara = 28, 44 k_unity_xbarb = 29, 45 k_unity_sim = 30, 46 k_unity_dryice = 31, 47 k_unity_sd = 32, 48 k_unity_spi = 33, 49 k_unity_mmc = 34, 50 k_unity_sdspi = 35, 51 k_unity_sema42 = 36, 52 k_unity_xrdc = 37, 53 k_unity_mu = 38, 54 k_unity_lmem = 39, 55 k_unity_wdog32 = 40, 56 k_unity_cop = 41, 57 k_unity_ewm = 42, 58 k_unity_wdog = 43, 59 k_unity_scg = 44, 60 k_unity_flexcan = 45, 61 k_unity_tsi_v2 = 46, 62 k_unity_tsi_v4 = 47, 63 k_unity_rtos_uart = 48, 64 k_unity_rtos_lpuart = 49, 65 k_unity_smartcard = 50, 66 k_unity_afe = 51, 67 k_unity_rtos_i2c = 52, 68 k_unity_rtos_spi = 53, 69 k_unity_rtos_dspi = 54, 70 k_unity_mcmgr = 55, 71 k_unity_rpmsg = 56, 72 k_unity_flexio_spi = 57, 73 k_unity_hsadc = 58, 74 k_unity_rdmgr = 59, 75 k_unity_enet = 60, 76 k_unity_qspi = 61, 77 k_unity_dmamux = 62, 78 k_unity_dma = 63, 79 k_unity_edma = 64, 80 k_unity_slcd = 65, 81 k_unity_sysmpu = 66, 82 k_unity_cmt = 67, 83 k_unity_intmux = 68, 84 k_unity_irtc = 69, 85 k_unity_port = 70, 86 k_unity_rtc = 71, 87 k_unity_trgmux = 72, 88 k_unity_qtmr = 73, 89 k_unity_tpm = 74, 90 k_unity_pmc = 75, 91 k_unity_gpio = 76, 92 k_unity_ftm = 77, 93 k_unity_lpsci = 78, 94 k_unity_lpuart = 79, 95 k_unity_pit = 80, 96 k_unity_lpit = 81, 97 k_unity_rcm = 82, 98 k_unity_pwm = 83, 99 k_unity_lptmr = 84, 100 k_unity_lpi2c = 85, 101 k_unity_pwt = 86, 102 k_unity_sdhc = 87, 103 k_unity_tsi_v5 = 88, 104 k_unity_llwu = 89, 105 k_unity_flexio = 90, 106 k_unity_lpadc = 91, 107 k_unity_tstmr = 92, 108 k_unity_smc = 93, 109 k_unity_mailbox = 94, 110 k_unity_flashiap = 95, 111 k_unity_fmeas = 96, 112 k_unity_caam = 97, 113 k_unity_flexspi = 98, 114 k_unity_lpc_adc = 99, 115 k_unity_rtos_usart = 100, 116 k_unity_flexio_i2c = 101, 117 k_unity_i2s = 102, 118 k_unity_gint = 103, 119 k_unity_pint = 104, 120 k_unity_mrt = 105, 121 k_unity_ctimer = 106, 122 k_unity_sctimer = 107, 123 k_unity_flexio_uart = 108, 124 k_unity_flexio_i2s = 109, 125 k_unity_aes = 110, 126 k_unity_mmdc = 111, 127 k_unity_rtos_lpsci = 112, 128 k_unity_eeprom = 113, 129 k_unity_sha = 114, 130 k_unity_lcd = 115, 131 k_unity_emc = 116, 132 k_unity_sdif = 117, 133 k_unity_spifi = 118, 134 k_unity_rit = 119, 135 k_unity_irqsteer = 120, 136 k_unity_flexio_mculcd = 121, 137 k_unity_isi = 122, 138 k_unity_adc_12b1msps_sar = 123, 139 k_unity_dac_1 = 124, 140 k_unity_cache = 125, 141 k_unity_esai = 126, 142 k_unity_usdhc = 127, 143 k_unity_src = 128, 144 k_unity_tsc = 129, 145 k_unity_ecspi = 130, 146 k_unity_dryice_digital = 131, 147 k_unity_dac12 = 132, 148 k_unity_elcdif = 133, 149 k_unity_pxp = 134, 150 k_unity_lpcmp = 135, 151 k_unity_csi = 136, 152 k_unity_cau3 = 137, 153 k_unity_adc_5v12b_ll18_015 = 138, 154 k_unity_dcdc_1 = 139, 155 k_unity_flexram = 140, 156 k_unity_adc_etc = 141, 157 k_unity_dcp = 142, 158 k_unity_semc = 143, 159 k_unity_tmu = 144, 160 k_unity_dpu = 145, 161 k_unity_rdc = 146, 162 k_unity_sema4 = 147, 163 k_unity_miniusart = 148, 164 k_unity_minispi = 149, 165 k_unity_prince = 150, 166 k_unity_puf = 151, 167 k_unity_hashcrypt = 152, 168 k_unity_lin = 153, 169 k_unity_lcdif = 154, 170 k_unity_swm = 155, 171 k_unity_powerquad = 156, 172 k_unity_otp_nxh2004 = 157, 173 k_unity_rng_nxh2004 = 158, 174 k_unity_rsa_nxh2004 = 159, 175 k_unity_asrc = 160, 176 k_unity_syscon_nxh2004 = 161, 177 k_unity_i3c = 162, 178 k_unity_ftfx = 163, 179 k_unity_dsp = 164, 180 k_unity_common = 165, 181 k_unity_dcic = 166, 182 k_unity_imu = 167, 183 k_unity_maestro = 168, 184 k_unity_clock = 169, 185 k_unity_spc = 170, 186 k_unity_cmc = 171, 187 k_unity_ccm32k = 172, 188 k_unity_wuu = 173, 189 k_unity_sfa = 174, 190 k_unity_pm = 175, 191 k_unity_dac14 = 176, 192 }; 193 194 #define MAKE_UNITY_NUM(unity_module, caseID) (((uint32_t)(unity_module)*10000) + (uint32_t)(caseID)) 195 196 //------------------------------------------------------- 197 // Configuration Options 198 //------------------------------------------------------- 199 // All options described below should be passed as a compiler flag to all files using Unity. If you must add #defines, 200 // place them BEFORE the #include above. 201 202 // Integers/longs/pointers 203 // - Unity assumes 32 bit integers, longs, and pointers by default 204 // - If your compiler treats ints of a different size, options are: 205 // - define UNITY_USE_LIMITS_H to use limits.h to determine sizes 206 // - define UNITY_INT_WIDTH, UNITY_LONG_WIDTH, nand UNITY_POINTER_WIDTH 207 208 // Floats 209 // - define UNITY_EXCLUDE_FLOAT to disallow floating point comparisons 210 // - define UNITY_FLOAT_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_FLOAT 211 // - define UNITY_FLOAT_TYPE to specify doubles instead of single precision floats 212 // - define UNITY_FLOAT_VERBOSE to print floating point values in errors (uses sprintf) 213 // - define UNITY_INCLUDE_DOUBLE to allow double floating point comparisons 214 // - define UNITY_EXCLUDE_DOUBLE to disallow double floating point comparisons (default) 215 // - define UNITY_DOUBLE_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_DOUBLE 216 // - define UNITY_DOUBLE_TYPE to specify something other than double 217 // - define UNITY_DOUBLE_VERBOSE to print floating point values in errors (uses sprintf) 218 219 // Output 220 // - by default, Unity prints to standard out with putchar. define UNITY_OUTPUT_CHAR(a) with a different function 221 // if desired 222 223 // Optimization 224 // - by default, line numbers are stored in unsigned shorts. Define UNITY_LINE_TYPE with a different type if your 225 // files are huge 226 // - by default, test and failure counters are unsigned shorts. Define UNITY_COUNTER_TYPE with a different type if 227 // you want to save space or have more than 65535 Tests. 228 229 // Test Cases 230 // - define UNITY_SUPPORT_TEST_CASES to include the TEST_CASE macro, though really it's mostly about the runner 231 // generator script 232 233 // Parameterized Tests 234 // - you'll want to create a define of TEST_CASE(...) which basically evaluates to nothing 235 236 //------------------------------------------------------- 237 // Test Running Macros 238 //------------------------------------------------------- 239 240 #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0) 241 242 #define TEST_ABORT() \ 243 { \ 244 longjmp(Unity.AbortFrame, 1); \ 245 } 246 247 #ifndef RUN_EXAMPLE 248 #ifdef UNITY_SHOW_TEST_FILE_PATH 249 #define RUN_EXAMPLE(func, caseId) UnityDefaultTestRun(&setUp, func, &tearDown, #func, caseId, __FILE__) 250 #else 251 #define RUN_EXAMPLE(func, caseId) UnityDefaultTestRun(&setUp, func, &tearDown, #func, caseId) 252 #endif 253 #endif 254 255 #ifndef RUN_EXAMPLE_EX 256 #ifdef UNITY_SHOW_TEST_FILE_PATH 257 #define RUN_EXAMPLE_EX(setUpFunc, func, tearDownFunc, caseId) \ 258 UnityDefaultTestRun(setUpFunc, func, tearDownFunc, #func, caseId, __FILE__) 259 #else 260 #define RUN_EXAMPLE_EX(setUpFunc, func, tearDownFunc, caseId) \ 261 UnityDefaultTestRun(setUpFunc, func, tearDownFunc, #func, caseId) 262 #endif 263 #endif 264 265 #define TEST_LINE_NUM (Unity.CurrentTestLineNumber) 266 #define TEST_IS_IGNORED (Unity.CurrentTestIgnored) 267 268 /* Remove unused ## to fix gcc build error*/ 269 #define FSL_TEST(testCase, message, assertWithoutTEST, param...) \ 270 SET_INDEP_ASSERT_ID(testCase, __LINE__); \ 271 TEST_##assertWithoutTEST(param) 272 273 /* Remove unused ## to fix gcc build error*/ 274 #define FSL_TEST_ASSERT(testCase, message, assertWithoutTEST_ASSERT, param...) \ 275 SET_INDEP_ASSERT_ID(testCase, __LINE__); \ 276 TEST_ASSERT_##assertWithoutTEST_ASSERT(param) 277 278 //------------------------------------------------------- 279 // Basic Fail and Ignore 280 //------------------------------------------------------- 281 282 #define TEST_FAIL_MESSAGE(message) UNITY_TEST_FAIL(__LINE__, message) 283 #define TEST_FAIL() UNITY_TEST_FAIL(__LINE__, NULL) 284 #define TEST_IGNORE_MESSAGE(message) UNITY_TEST_IGNORE(__LINE__, message) 285 #define TEST_IGNORE() UNITY_TEST_IGNORE(__LINE__, NULL) 286 #define TEST_ONLY() 287 288 //------------------------------------------------------- 289 // Test Asserts (simple) 290 //------------------------------------------------------- 291 292 // Boolean 293 #define TEST_ASSERT(condition) UNITY_TEST_ASSERT((condition), __LINE__, " Expression Evaluated To FALSE") 294 #define TEST_ASSERT_TRUE(condition) UNITY_TEST_ASSERT((condition), __LINE__, " Expected TRUE Was FALSE") 295 #define TEST_ASSERT_UNLESS(condition) UNITY_TEST_ASSERT(!(condition), __LINE__, " Expression Evaluated To TRUE") 296 #define TEST_ASSERT_FALSE(condition) UNITY_TEST_ASSERT(!(condition), __LINE__, " Expected FALSE Was TRUE") 297 #define TEST_ASSERT_NULL(pointer) UNITY_TEST_ASSERT_NULL((pointer), __LINE__, " Expected NULL") 298 #define TEST_ASSERT_NOT_NULL(pointer) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, " Expected Non-NULL") 299 300 // Integers (of all sizes) 301 #define TEST_ASSERT_EQUAL_INT(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) 302 #define TEST_ASSERT_EQUAL_INT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, NULL) 303 #define TEST_ASSERT_EQUAL_INT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, NULL) 304 #define TEST_ASSERT_EQUAL_INT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, NULL) 305 #define TEST_ASSERT_EQUAL_INT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, NULL) 306 #define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) 307 #define TEST_ASSERT_NOT_EQUAL(expected, actual) \ 308 UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal") 309 #define TEST_ASSERT_EQUAL_UINT(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, NULL) 310 #define TEST_ASSERT_EQUAL_UINT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT8((expected), (actual), __LINE__, NULL) 311 #define TEST_ASSERT_EQUAL_UINT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT16((expected), (actual), __LINE__, NULL) 312 #define TEST_ASSERT_EQUAL_UINT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT32((expected), (actual), __LINE__, NULL) 313 #define TEST_ASSERT_EQUAL_UINT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT64((expected), (actual), __LINE__, NULL) 314 #define TEST_ASSERT_EQUAL_HEX(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) 315 #define TEST_ASSERT_EQUAL_HEX8(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX8((expected), (actual), __LINE__, NULL) 316 #define TEST_ASSERT_EQUAL_HEX16(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, NULL) 317 #define TEST_ASSERT_EQUAL_HEX32(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) 318 #define TEST_ASSERT_EQUAL_HEX64(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, NULL) 319 #define TEST_ASSERT_BITS(mask, expected, actual) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, NULL) 320 #define TEST_ASSERT_BITS_HIGH(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(-1), (actual), __LINE__, NULL) 321 #define TEST_ASSERT_BITS_LOW(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (_UU32)(0), (actual), __LINE__, NULL) 322 #define TEST_ASSERT_BIT_HIGH(bit, actual) \ 323 UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(-1), (actual), __LINE__, NULL) 324 #define TEST_ASSERT_BIT_LOW(bit, actual) UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(0), (actual), __LINE__, NULL) 325 326 // Integer Ranges (of all sizes) 327 #define TEST_ASSERT_INT_WITHIN(delta, expected, actual) \ 328 UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, __LINE__, NULL) 329 #define TEST_ASSERT_UINT_WITHIN(delta, expected, actual) \ 330 UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, __LINE__, NULL) 331 #define TEST_ASSERT_HEX_WITHIN(delta, expected, actual) \ 332 UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, NULL) 333 #define TEST_ASSERT_HEX8_WITHIN(delta, expected, actual) \ 334 UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, __LINE__, NULL) 335 #define TEST_ASSERT_HEX16_WITHIN(delta, expected, actual) \ 336 UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, __LINE__, NULL) 337 #define TEST_ASSERT_HEX32_WITHIN(delta, expected, actual) \ 338 UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, NULL) 339 #define TEST_ASSERT_HEX64_WITHIN(delta, expected, actual) \ 340 UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, __LINE__, NULL) 341 342 // Structs and Strings 343 #define TEST_ASSERT_EQUAL_PTR(expected, actual) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, NULL) 344 #define TEST_ASSERT_EQUAL_STRING(expected, actual) UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, __LINE__, NULL) 345 #define TEST_ASSERT_EQUAL_MEMORY(expected, actual, len) \ 346 UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, __LINE__, NULL) 347 348 // Arrays 349 #define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements) \ 350 UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, __LINE__, NULL) 351 #define TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements) \ 352 UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, __LINE__, NULL) 353 #define TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements) \ 354 UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, __LINE__, NULL) 355 #define TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements) \ 356 UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, __LINE__, NULL) 357 #define TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements) \ 358 UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, __LINE__, NULL) 359 #define TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements) \ 360 UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, __LINE__, NULL) 361 #define TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements) \ 362 UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, __LINE__, NULL) 363 #define TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements) \ 364 UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, __LINE__, NULL) 365 #define TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements) \ 366 UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, __LINE__, NULL) 367 #define TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements) \ 368 UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, __LINE__, NULL) 369 #define TEST_ASSERT_EQUAL_HEX_ARRAY(expected, actual, num_elements) \ 370 UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, NULL) 371 #define TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements) \ 372 UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, __LINE__, NULL) 373 #define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) \ 374 UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, NULL) 375 #define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) \ 376 UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, NULL) 377 #define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) \ 378 UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, NULL) 379 #define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) \ 380 UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, NULL) 381 #define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) \ 382 UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, NULL) 383 #define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) \ 384 UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, NULL) 385 386 // Floating Point (If Enabled) 387 #define TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual) \ 388 UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, __LINE__, NULL) 389 #define TEST_ASSERT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, __LINE__, NULL) 390 #define TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements) \ 391 UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, __LINE__, NULL) 392 #define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, NULL) 393 #define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, NULL) 394 #define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, NULL) 395 396 // Double (If Enabled) 397 #define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) \ 398 UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, NULL) 399 #define TEST_ASSERT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, __LINE__, NULL) 400 #define TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements) \ 401 UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, __LINE__, NULL) 402 #define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, NULL) 403 #define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, NULL) 404 #define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, NULL) 405 406 //------------------------------------------------------- 407 // Test Asserts (with additional messages) 408 //------------------------------------------------------- 409 410 // Boolean 411 #define TEST_ASSERT_MESSAGE(condition, message) UNITY_TEST_ASSERT((condition), __LINE__, message) 412 #define TEST_ASSERT_TRUE_MESSAGE(condition, message) UNITY_TEST_ASSERT((condition), __LINE__, message) 413 #define TEST_ASSERT_UNLESS_MESSAGE(condition, message) UNITY_TEST_ASSERT(!(condition), __LINE__, message) 414 #define TEST_ASSERT_FALSE_MESSAGE(condition, message) UNITY_TEST_ASSERT(!(condition), __LINE__, message) 415 #define TEST_ASSERT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NULL((pointer), __LINE__, message) 416 #define TEST_ASSERT_NOT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, message) 417 418 // Integers (of all sizes) 419 #define TEST_ASSERT_EQUAL_INT_MESSAGE(expected, actual, message) \ 420 UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message) 421 #define TEST_ASSERT_EQUAL_INT8_MESSAGE(expected, actual, message) \ 422 UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, message) 423 #define TEST_ASSERT_EQUAL_INT16_MESSAGE(expected, actual, message) \ 424 UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, message) 425 #define TEST_ASSERT_EQUAL_INT32_MESSAGE(expected, actual, message) \ 426 UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, message) 427 #define TEST_ASSERT_EQUAL_INT64_MESSAGE(expected, actual, message) \ 428 UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, message) 429 #define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) \ 430 UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message) 431 #define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) \ 432 UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, message) 433 #define TEST_ASSERT_EQUAL_UINT_MESSAGE(expected, actual, message) \ 434 UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, message) 435 #define TEST_ASSERT_EQUAL_UINT8_MESSAGE(expected, actual, message) \ 436 UNITY_TEST_ASSERT_EQUAL_UINT8((expected), (actual), __LINE__, message) 437 #define TEST_ASSERT_EQUAL_UINT16_MESSAGE(expected, actual, message) \ 438 UNITY_TEST_ASSERT_EQUAL_UINT16((expected), (actual), __LINE__, message) 439 #define TEST_ASSERT_EQUAL_UINT32_MESSAGE(expected, actual, message) \ 440 UNITY_TEST_ASSERT_EQUAL_UINT32((expected), (actual), __LINE__, message) 441 #define TEST_ASSERT_EQUAL_UINT64_MESSAGE(expected, actual, message) \ 442 UNITY_TEST_ASSERT_EQUAL_UINT64((expected), (actual), __LINE__, message) 443 #define TEST_ASSERT_EQUAL_HEX_MESSAGE(expected, actual, message) \ 444 UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, message) 445 #define TEST_ASSERT_EQUAL_HEX8_MESSAGE(expected, actual, message) \ 446 UNITY_TEST_ASSERT_EQUAL_HEX8((expected), (actual), __LINE__, message) 447 #define TEST_ASSERT_EQUAL_HEX16_MESSAGE(expected, actual, message) \ 448 UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, message) 449 #define TEST_ASSERT_EQUAL_HEX32_MESSAGE(expected, actual, message) \ 450 UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, message) 451 #define TEST_ASSERT_EQUAL_HEX64_MESSAGE(expected, actual, message) \ 452 UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, message) 453 #define TEST_ASSERT_BITS_MESSAGE(mask, expected, actual, message) \ 454 UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, message) 455 #define TEST_ASSERT_BITS_HIGH_MESSAGE(mask, actual, message) \ 456 UNITY_TEST_ASSERT_BITS((mask), (_UU32)(-1), (actual), __LINE__, message) 457 #define TEST_ASSERT_BITS_LOW_MESSAGE(mask, actual, message) \ 458 UNITY_TEST_ASSERT_BITS((mask), (_UU32)(0), (actual), __LINE__, message) 459 #define TEST_ASSERT_BIT_HIGH_MESSAGE(bit, actual, message) \ 460 UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(-1), (actual), __LINE__, message) 461 #define TEST_ASSERT_BIT_LOW_MESSAGE(bit, actual, message) \ 462 UNITY_TEST_ASSERT_BITS(((_UU32)1 << bit), (_UU32)(0), (actual), __LINE__, message) 463 464 // Integer Ranges (of all sizes) 465 #define TEST_ASSERT_INT_WITHIN_MESSAGE(delta, expected, actual, message) \ 466 UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, __LINE__, message) 467 #define TEST_ASSERT_UINT_WITHIN_MESSAGE(delta, expected, actual, message) \ 468 UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, __LINE__, message) 469 #define TEST_ASSERT_HEX_WITHIN_MESSAGE(delta, expected, actual, message) \ 470 UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, message) 471 #define TEST_ASSERT_HEX8_WITHIN_MESSAGE(delta, expected, actual, message) \ 472 UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, __LINE__, message) 473 #define TEST_ASSERT_HEX16_WITHIN_MESSAGE(delta, expected, actual, message) \ 474 UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, __LINE__, message) 475 #define TEST_ASSERT_HEX32_WITHIN_MESSAGE(delta, expected, actual, message) \ 476 UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, __LINE__, message) 477 #define TEST_ASSERT_HEX64_WITHIN_MESSAGE(delta, expected, actual, message) \ 478 UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, __LINE__, message) 479 480 // Structs and Strings 481 #define TEST_ASSERT_EQUAL_PTR_MESSAGE(expected, actual, message) \ 482 UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, __LINE__, message) 483 #define TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message) \ 484 UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, __LINE__, message) 485 #define TEST_ASSERT_EQUAL_MEMORY_MESSAGE(expected, actual, len, message) \ 486 UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, __LINE__, message) 487 488 // Arrays 489 #define TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 490 UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, __LINE__, message) 491 #define TEST_ASSERT_EQUAL_INT8_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 492 UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, __LINE__, message) 493 #define TEST_ASSERT_EQUAL_INT16_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 494 UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, __LINE__, message) 495 #define TEST_ASSERT_EQUAL_INT32_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 496 UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, __LINE__, message) 497 #define TEST_ASSERT_EQUAL_INT64_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 498 UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, __LINE__, message) 499 #define TEST_ASSERT_EQUAL_UINT_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 500 UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, __LINE__, message) 501 #define TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 502 UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, __LINE__, message) 503 #define TEST_ASSERT_EQUAL_UINT16_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 504 UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, __LINE__, message) 505 #define TEST_ASSERT_EQUAL_UINT32_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 506 UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, __LINE__, message) 507 #define TEST_ASSERT_EQUAL_UINT64_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 508 UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, __LINE__, message) 509 #define TEST_ASSERT_EQUAL_HEX_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 510 UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, message) 511 #define TEST_ASSERT_EQUAL_HEX8_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 512 UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, __LINE__, message) 513 #define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 514 UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, message) 515 #define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 516 UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, message) 517 #define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 518 UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, message) 519 #define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 520 UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, message) 521 #define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 522 UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, message) 523 #define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) \ 524 UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, message) 525 526 // Floating Point (If Enabled) 527 #define TEST_ASSERT_FLOAT_WITHIN_MESSAGE(delta, expected, actual, message) \ 528 UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, __LINE__, message) 529 #define TEST_ASSERT_EQUAL_FLOAT_MESSAGE(expected, actual, message) \ 530 UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, __LINE__, message) 531 #define TEST_ASSERT_EQUAL_FLOAT_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 532 UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, __LINE__, message) 533 /* 534 Error[Pm046]: floating point values shall not be tested for exact equality or inequality (MISRA C 2004 rule 13.3) 535 #define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, message) 536 #define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) 537 UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, message) 538 #define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, message) 539 */ 540 // Double (If Enabled) 541 #define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) \ 542 UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, message) 543 #define TEST_ASSERT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) \ 544 UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, __LINE__, message) 545 #define TEST_ASSERT_EQUAL_DOUBLE_ARRAY_MESSAGE(expected, actual, num_elements, message) \ 546 UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, __LINE__, message) 547 /* 548 Error[Pm046]: floating point values shall not be tested for exact equality or inequality (MISRA C 2004 rule 13.3) 549 #define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, message) 550 #define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) 551 UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, message) 552 #define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, message) 553 */ 554 #ifdef DO_GCOV_COVERAGE 555 void static_init(void); 556 int _read(int file, char *ptr, int len); 557 int _write(int file, char *ptr, int len); 558 #endif 559 #endif 560