@@ -659,6 +659,33 @@ static void tauPrintHexBufCmp(const void* const buff, const void* const ref, con
659
659
tauColouredPrintf (TAU_COLOUR_CYAN_," >" );
660
660
}
661
661
662
+ #define __TAUCMP_PTR__ (actual, expected, cond, space, macroName, failOrAbort ) \
663
+ do { \
664
+ if (!((void *)(actual)cond (void *)(expected))) { \
665
+ tauPrintf (" %s:%u: " , __FILE__, __LINE__); \
666
+ tauColouredPrintf (TAU_COLOUR_BRIGHTRED_, " FAILED\n " ); \
667
+ if (tauShouldDecomposeMacro (#actual, #expected, 0 )) { \
668
+ tauColouredPrintf (TAU_COLOUR_BRIGHTCYAN_, " In macro : " ); \
669
+ tauColouredPrintf (TAU_COLOUR_BRIGHTCYAN_, " %s( %s, %s )\n " , \
670
+ #macroName, \
671
+ #actual, #expected); \
672
+ } \
673
+ tauPrintf (" Expected : %s" , #actual); \
674
+ printf (" %s " , #cond space); \
675
+ printf (" %p" , (void *)expected); \
676
+ tauPrintf (" \n " ); \
677
+ \
678
+ tauPrintf (" Actual : %s" , #actual); \
679
+ printf (" == " ); \
680
+ printf (" %p" , (void *)actual); \
681
+ tauPrintf (" \n " ); \
682
+ failOrAbort; \
683
+ if (shouldAbortTest) { \
684
+ return ; \
685
+ } \
686
+ } \
687
+ } \
688
+ while (0 )
662
689
663
690
#define __TAUCMP_BUF__ (actual, expected, len, cond, ifCondFailsThenPrint, actualPrint, macroName, failOrAbort ) \
664
691
do { \
@@ -768,6 +795,12 @@ static void tauPrintHexBufCmp(const void* const buff, const void* const ref, con
768
795
#define REQUIRE_BUF_EQ (actual, expected, n ) __TAUCMP_BUF__(actual, expected, n, !=, ==, not equal, REQUIRE_BUF_EQ, TAU_ABORT_IF_INSIDE_TESTSUITE)
769
796
#define REQUIRE_BUF_NE (actual, expected, n ) __TAUCMP_BUF__(actual, expected, n, ==, !=, equal, REQUIRE_BUF_NE, TAU_ABORT_IF_INSIDE_TESTSUITE)
770
797
798
+ // Pointers Checks
799
+ #define CHECK_PTR_EQ (actual, expected ) __TAUCMP_PTR__(actual, expected, ==, " " , CHECK_PTR_EQ, TAU_FAIL_IF_INSIDE_TESTSUITE)
800
+ #define CHECK_PTR_NE (actual, expected ) __TAUCMP_PTR__(actual, expected, !=, " " , CHECK_PTR_NE, TAU_FAIL_IF_INSIDE_TESTSUITE)
801
+ #define REQUIRE_PTR_EQ (actual, expected ) __TAUCMP_PTR__(actual, expected, ==, " " , REQUIRE_PTR_EQ, TAU_ABORT_IF_INSIDE_TESTSUITE)
802
+ #define REQUIRE_PTR_NE (actual, expected ) __TAUCMP_PTR__(actual, expected, !=, " " , REQUIRE_PTR_NE, TAU_ABORT_IF_INSIDE_TESTSUITE)
803
+
771
804
// Note: The negate sign `!` must be there for {CHECK|REQUIRE}_TRUE
772
805
// Do not remove it
773
806
#define CHECK_TRUE (cond ) __TAUCMP_TF(cond, false , true , !, CHECK_TRUE, TAU_FAIL_IF_INSIDE_TESTSUITE)
0 commit comments