libsframe: testsuite: make test names unique

Message ID 20250920073357.1508633-1-indu.bhagat@oracle.com
State New
Headers
Series libsframe: testsuite: make test names unique |

Commit Message

Indu Bhagat Sept. 20, 2025, 7:33 a.m. UTC
  Hi,

I am considering this patch for fixing the PR.

Thanks
Indu

-------

Fix PR libsframe/33437 - libsframe test names are not unique

The TEST () macro definition originally in plt-findfre-2.c allows for
three arguments, the last of which is a suffix char that can be used to
differentiate between multiple runs of the testcases.  Move that
definition in the testsuite's common header - sframe-test.h, and use it
throughout the testsuite.

libsframe/testsuite/
	PR libsframe/33437
	* libsframe.decode/be-flipping.c: Use new TEST macro with
	suffix.
	* libsframe.decode/frecnt-1.c: Likewise.
	* libsframe.decode/frecnt-2.c: Likewise.
	* libsframe.encode/encode-1.c: Likewise.
	* libsframe.find/findfre-1.c: Likewise.
	* libsframe.find/findfunc-1.c: Likewise.
	* libsframe.find/plt-findfre-1.c: Likewise.
	* libsframe.find/plt-findfre-2.c: Likewise.
	* sframe-test.h: Move the TEST macro definition to this
	testsuite header.
---
 .../testsuite/libsframe.decode/be-flipping.c  | 21 ++-----
 .../testsuite/libsframe.decode/frecnt-1.c     | 23 +++-----
 .../testsuite/libsframe.decode/frecnt-2.c     | 23 +++-----
 .../testsuite/libsframe.encode/encode-1.c     | 25 +++-----
 .../testsuite/libsframe.find/findfre-1.c      | 50 +++++++---------
 .../testsuite/libsframe.find/findfunc-1.c     | 57 ++++++++-----------
 .../testsuite/libsframe.find/plt-findfre-1.c  | 51 +++++++----------
 .../testsuite/libsframe.find/plt-findfre-2.c  | 10 ----
 libsframe/testsuite/sframe-test.h             | 10 ++++
 9 files changed, 104 insertions(+), 166 deletions(-)
  

Comments

Jens Remus Sept. 22, 2025, 10:01 a.m. UTC | #1
Hello Indu!

On 9/20/2025 9:33 AM, Indu Bhagat via Binutils wrote:
> I am considering this patch for fixing the PR.

> Fix PR libsframe/33437 - libsframe test names are not unique
> 
> The TEST () macro definition originally in plt-findfre-2.c allows for
> three arguments, the last of which is a suffix char that can be used to
> differentiate between multiple runs of the testcases.  Move that
> definition in the testsuite's common header - sframe-test.h, and use it
> throughout the testsuite.

Nit: The TEST macro allows for a variable number of arguments following
the (1) test condition and (2) test name format string, that are
formatted and inserted into the test name.

Maybe the following definition of TEST would make that more clear?

#define TEST(cond, name_fmt, ...)					\
  do									\
    {                                                                   \
      if (cond)								\
        pass (name_fmt, ## __VA_ARGS__);				\
      else								\
        fail (name_fmt, ## __VA_ARGS__);				\
    }									\
    while (0)

Not sure how portable the use of ", ## __VA_ARGS__" is though.

Otherwise looks good to me.

> libsframe/testsuite/
> 	PR libsframe/33437
> 	* libsframe.decode/be-flipping.c: Use new TEST macro with
> 	suffix.
> 	* libsframe.decode/frecnt-1.c: Likewise.
> 	* libsframe.decode/frecnt-2.c: Likewise.
> 	* libsframe.encode/encode-1.c: Likewise.
> 	* libsframe.find/findfre-1.c: Likewise.
> 	* libsframe.find/findfunc-1.c: Likewise.
> 	* libsframe.find/plt-findfre-1.c: Likewise.
> 	* libsframe.find/plt-findfre-2.c: Likewise.
> 	* sframe-test.h: Move the TEST macro definition to this
> 	testsuite header.

Reviewed-by: Jens Remus <jremus@linux.ibm.com>

Regards,
Jens
  

Patch

diff --git a/libsframe/testsuite/libsframe.decode/be-flipping.c b/libsframe/testsuite/libsframe.decode/be-flipping.c
index c8b627b2067..c8de886a589 100644
--- a/libsframe/testsuite/libsframe.decode/be-flipping.c
+++ b/libsframe/testsuite/libsframe.decode/be-flipping.c
@@ -46,16 +46,7 @@  main (void)
   char *sf_buf;
   size_t sf_size;
   uint8_t rep_block_size;
-
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
+  const char suffix = 'a';
 
   /* Test setup.  */
   fp = fopen (DATA, "r");
@@ -87,15 +78,15 @@  main (void)
      the host running the test is a little-endian system.  This endian-flipped
      copy of the buffer is kept internally in dctx.  */
   dctx = sframe_decode (sf_buf, sf_size, &err);
-  TEST ("be-flipping: Decoder setup", dctx != NULL);
+  TEST (dctx != NULL, "be-flipping-1%c: Decoder setup", suffix);
 
   unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
-  TEST ("be-flipping: Decoder FDE count", fde_cnt == 1);
+  TEST (fde_cnt == 1, "be-flipping-1%c: Decoder FDE count", suffix);
 
   err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
 					&finfo, &rep_block_size);
-  TEST ("be-flipping: Decoder get FDE", err == 0);
-  TEST ("be-flipping: Decoder FRE count", nfres == 5);
+  TEST (err == 0, "be-flipping-1%c: Decoder get FDE", suffix);
+  TEST (nfres == 5, "be-flipping-1%c: Decoder FRE count", suffix);
 
   free (sf_buf);
   sf_buf = NULL;
@@ -105,6 +96,6 @@  main (void)
 
 setup_fail:
   sframe_decoder_free (&dctx);
-  fail ("be-flipping: Test setup");
+  fail ("be-flipping-1%c: Test setup", suffix);
   return 1;
 }
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-1.c b/libsframe/testsuite/libsframe.decode/frecnt-1.c
index 9cf55ef0868..09cdd7df06f 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-1.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-1.c
@@ -37,16 +37,7 @@  main (void)
   char *sf_buf;
   size_t sf_size;
   uint8_t rep_block_size;
-
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
+  const char suffix = 'a';
 
   /* Test Setup.  */
   fp = fopen (DATA, "r");
@@ -68,18 +59,18 @@  main (void)
   /* Execute tests.  */
   sf_size = fread (sf_buf, 1, st.st_size, fp);
   fclose (fp);
-  TEST ("frecnt-1: Read data", sf_size != 0);
+  TEST (sf_size != 0, "frecnt-1%c: Read data", suffix);
 
   dctx = sframe_decode (sf_buf, sf_size, &err);
-  TEST ("frecnt-1: Decoder setup", dctx != NULL);
+  TEST (dctx != NULL, "frecnt-1%c: Decoder setup", suffix);
 
   unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
-  TEST ("frecnt-1: Decoder FDE count", fde_cnt == 1);
+  TEST (fde_cnt == 1, "frecnt-1%c: Decoder FDE count", suffix);
 
   err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
 					&finfo, &rep_block_size);
-  TEST ("frecnt-1: Decoder get FDE", err == 0);
-  TEST ("frecnt-1: Decoder FRE count", nfres == 4);
+  TEST (err == 0, "frecnt-1%c: Decoder get FDE", suffix);
+  TEST (nfres == 4, "frecnt-1%c: Decoder FRE count", suffix);
 
   free (sf_buf);
   sf_buf = NULL;
@@ -89,6 +80,6 @@  main (void)
 
 setup_fail:
   sframe_decoder_free (&dctx);
-  fail ("frecnt-1: Test setup");
+  fail ("frecnt-1%c: Test setup", suffix);
   return 1;
 }
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-2.c b/libsframe/testsuite/libsframe.decode/frecnt-2.c
index 9136e9a9e95..d1842b93a0c 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-2.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-2.c
@@ -39,16 +39,7 @@  main (void)
   char *sf_buf;
   size_t sf_size;
   uint8_t rep_block_size;
-
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
+  const char suffix = 'a';
 
   fp = fopen (DATA, "r");
   if (fp == NULL)
@@ -69,20 +60,20 @@  main (void)
   /* Execute tests.  */
   sf_size = fread (sf_buf, 1, st.st_size, fp);
   fclose (fp);
-  TEST ("frecnt-2: Read data", sf_size != 0);
+  TEST (sf_size != 0, "frecnt-2%c: Read data", suffix);
 
   dctx = sframe_decode (sf_buf, sf_size, &err);
-  TEST ("frecnt-2: Decode setup", dctx != NULL);
+  TEST (dctx != NULL, "frecnt-2%c: Decode setup", suffix);
 
   unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
-  TEST ("frecnt-2: Decode FDE count", fde_cnt == 2);
+  TEST (fde_cnt == 2, "frecnt-2%c: Decode FDE count", suffix);
 
   for (i = 0; i < fde_cnt; ++i)
     {
       err = sframe_decoder_get_funcdesc_v2 (dctx, i, &nfres, &fsize, &fstart,
 					    &finfo, &rep_block_size);
-      TEST ("frecnt-2: Decode get FDE", err == 0);
-      TEST ("frecnt-2: Decode get FRE", nfres == 4);
+      TEST (err == 0, "frecnt-2%c: Decode get FDE%d", suffix, i);
+      TEST (nfres == 4, "frecnt-2%c: Decode num FREs for FDE%d", suffix, i);
     }
 
   free (sf_buf);
@@ -93,6 +84,6 @@  main (void)
 
 setup_fail:
   sframe_decoder_free (&dctx);
-  fail ("frecnt-2: Test setup");
+  fail ("frecnt-2%c: Test setup", suffix);
   return 1;
 }
diff --git a/libsframe/testsuite/libsframe.encode/encode-1.c b/libsframe/testsuite/libsframe.encode/encode-1.c
index da477e5fb2e..1ef6415d286 100644
--- a/libsframe/testsuite/libsframe.encode/encode-1.c
+++ b/libsframe/testsuite/libsframe.encode/encode-1.c
@@ -151,16 +151,6 @@  int main (void)
   unsigned int fde_cnt = 0;
   int match_p = 0;
 
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
-
   sframe_vaddr = 0x4020c8;
   encode = sframe_encode (SFRAME_VERSION,
 			  SFRAME_F_FDE_FUNC_START_PCREL,
@@ -169,29 +159,30 @@  int main (void)
 			  -8, /* Fixed RA offset for AMD64.  */
 			  &err);
 
+  const char suffix = 'a';
   fde_cnt = sframe_encoder_get_num_fidx (encode);
-  TEST ("encode-1: Encoder FDE count", fde_cnt == 0);
+  TEST (fde_cnt == 0, "encode-1%c: Encoder FDE count", suffix);
 
   err = sframe_encoder_add_fre (encode, 1, &frep);
-  TEST ("encode-1: Encoder update workflow", err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR, "encode-1%c: Encoder update workflow", suffix);
 
   func1_start_vaddr = 0x401106;
   err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
-  TEST ("encode-1: Encoder adding FDE1", err == 0);
+  TEST (err == 0, "encode-1%c: Encoder adding FDE1", suffix);
 
   /* Function 2 is placed after 0x0 bytes from the end of Function 1.  */
   func2_start_vaddr = func1_start_vaddr + func1_size + 0x0;
   err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
-  TEST ("encode-1: Encoder adding FDE2", err == 0);
+  TEST (err == 0, "encode-1%c: Encoder adding FDE2", suffix);
 
   fde_cnt = sframe_encoder_get_num_fidx (encode);
-  TEST ("encode-1: Encoder FDE count", fde_cnt == 2);
+  TEST (fde_cnt == 2, "encode-1%c: Encoder FDE count", suffix);
 
   sframe_buf = sframe_encoder_write (encode, &sf_size, &err);
-  TEST ("encode-1: Encoder write", err == 0);
+  TEST (err == 0, "encode-1%c: Encoder write", suffix);
 
   match_p = data_match (sframe_buf, sf_size);
-  TEST ("encode-1: Encode buffer match", match_p == 1);
+  TEST (match_p == 1, "encode-1%c: Encode buffer match", suffix);
 
   sframe_encoder_free (&encode);
   return 0;
diff --git a/libsframe/testsuite/libsframe.find/findfre-1.c b/libsframe/testsuite/libsframe.find/findfre-1.c
index cbd7ab30a98..c9048888d6d 100644
--- a/libsframe/testsuite/libsframe.find/findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/findfre-1.c
@@ -88,7 +88,8 @@  add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
 }
 
 static
-void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
+void test_text_findfre (const char suffix, uint32_t text_vaddr,
+			uint32_t sframe_vaddr)
 {
   sframe_encoder_ctx *encode;
   sframe_decoder_ctx *dctx;
@@ -103,16 +104,6 @@  void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
   size_t sf_size;
   int err = 0;
 
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
-
   encode = sframe_encode (SFRAME_VERSION,
 			  SFRAME_F_FDE_FUNC_START_PCREL,
 			  SFRAME_ABI_AMD64_ENDIAN_LITTLE,
@@ -122,56 +113,57 @@  void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
 
   func1_start_vaddr = text_vaddr;
   err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
-  TEST ("findfre-1: Adding FDE1", err == 0);
+  TEST (err == 0, "findfre-1%c: Adding FDE1", suffix);
 
   /* Function 2 is placed after 0x10 bytes from the end of Function 1.  */
   func2_start_vaddr = func1_start_vaddr + func1_size + 0x10;
   err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
-  TEST ("findfre-1: Adding FDE2", err == 0);
+  TEST (err == 0, "findfre-1%c: Adding FDE2", suffix);
 
   fde_cnt = sframe_encoder_get_num_fidx (encode);
-  TEST ("findfre-1: Test FDE count", fde_cnt == 2);
+  TEST (fde_cnt == 2, "findfre-1%c: Test FDE count", suffix);
 
   sframe_buf = sframe_encoder_write (encode, &sf_size, &err);
-  TEST ("findfre-1: Encoder write", err == 0);
+  TEST (err == 0, "findfre-1%c: Encoder write", suffix);
 
   dctx = sframe_decode (sframe_buf, sf_size, &err);
-  TEST ("findfre-1: Decoder setup", dctx != NULL);
+  TEST (dctx != NULL, "findfre-1%c: Decoder setup", suffix);
 
   /* Find the third FRE in first FDE.  */
   lookup_pc = func1_start_vaddr + 0x15 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find third FRE",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3),
+	"findfre-1%c: Find third FRE", suffix);
 
   /* Find an FRE for PC at the end of range covered by FRE.  */
   lookup_pc = func1_start_vaddr + 0x9 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find FRE for last PC covered by FRE",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2),
+	"findfre-1%c: Find FRE for last PC covered by FRE", suffix);
 
   /* Find the last FRE in first FDE.  */
   lookup_pc = func1_start_vaddr + 0x39 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find last FRE",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x8));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x8),
+	"findfre-1%c: Find last FRE", suffix);
 
   /* Find the second FRE in second FDE.  */
   lookup_pc = func2_start_vaddr + 0x11 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find second FRE",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12),
+	"findfre-1%c: Find second FRE", suffix);
 
   /* Find the first FRE in second FDE.  */
   lookup_pc = func2_start_vaddr + 0x0 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find first FRE",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x10));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x10),
+	"findfre-1%c: Find first FRE", suffix);
 
   /* Find FRE for PC out of range.  Expect error code.  */
   lookup_pc = func1_start_vaddr + func1_size - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfre-1: Find FRE for out of range PC", err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR,
+	"findfre-1%c: Find FRE for out of range PC", suffix);
 
   sframe_encoder_free (&encode);
   sframe_decoder_free (&dctx);
@@ -183,11 +175,11 @@  int main (void)
   uint32_t text_vaddr = 0x401020;
   printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
 	  sframe_vaddr);
-  test_text_findfre (text_vaddr, sframe_vaddr);
+  test_text_findfre ('a', text_vaddr, sframe_vaddr);
 
   sframe_vaddr = 0x401020;
   text_vaddr = 0x402220;
   printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
 	  sframe_vaddr);
-  test_text_findfre (text_vaddr, sframe_vaddr);
+  test_text_findfre ('b', text_vaddr, sframe_vaddr);
 }
diff --git a/libsframe/testsuite/libsframe.find/findfunc-1.c b/libsframe/testsuite/libsframe.find/findfunc-1.c
index 1dcd870b0e5..14ff9c51f16 100644
--- a/libsframe/testsuite/libsframe.find/findfunc-1.c
+++ b/libsframe/testsuite/libsframe.find/findfunc-1.c
@@ -130,7 +130,8 @@  add_fde3 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
 }
 
 static
-void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
+void test_text_findfre (const char suffix, uint32_t text_vaddr,
+			uint32_t sframe_vaddr)
 {
   sframe_encoder_ctx *encode;
   sframe_decoder_ctx *dctx;
@@ -147,16 +148,6 @@  void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
   size_t sf_size;
   int err = 0;
 
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
-
   encode = sframe_encode (SFRAME_VERSION,
 			  SFRAME_F_FDE_FUNC_START_PCREL,
 			  SFRAME_ABI_AMD64_ENDIAN_LITTLE,
@@ -167,26 +158,26 @@  void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
   /* Add FDE at index 0.  */
   func1_start_vaddr = text_vaddr;
   err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
-  TEST ("findfunc-1: Adding FDE1", err == 0);
+  TEST (err == 0, "findfunc-1%c: Adding FDE1", suffix);
 
   /* Add FDE at index 1.  */
   func2_start_vaddr = func1_start_vaddr + func1_size + 0x10;
   err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
-  TEST ("findfunc-1: Adding FDE2", err == 0);
+  TEST (err == 0, "findfunc-1%c: Adding FDE2", suffix);
 
   /* Add FDE at index 2.  */
   func3_start_vaddr = func2_start_vaddr + func2_size + 0x10;
   err = add_fde3 (encode, func3_start_vaddr, sframe_vaddr, 2, &func3_size);
-  TEST ("findfunc-1: Adding FDE3", err == 0);
+  TEST (err == 0, "findfunc-1%c: Adding FDE3", suffix);
 
   fde_cnt = sframe_encoder_get_num_fidx (encode);
-  TEST ("findfunc-1: Test FDE count", fde_cnt == 3);
+  TEST (fde_cnt == 3, "findfunc-1%c: Test FDE count", suffix);
 
   sframe_buf = sframe_encoder_write (encode, &sf_size, &err);
-  TEST ("findfunc-1: Encoder write", err == 0);
+  TEST (err == 0, "findfunc-1%c: Encoder write", suffix);
 
   dctx = sframe_decode (sframe_buf, sf_size, &err);
-  TEST ("findfunc-1: Decoder setup", dctx != NULL);
+  TEST (dctx != NULL, "findfunc-1%c: Decoder setup", suffix);
 
   /* Following negative tests check that libsframe APIs
      (sframe_get_funcdesc_with_addr, sframe_find_fre) work
@@ -195,46 +186,46 @@  void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
   /* Search with PC less than the first FDE's start addr.  */
   lookup_pc = func1_start_vaddr - 0x15 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: test-1: Find FRE for PC not in range",
-	err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR,
+	"findfunc-1%c: test-1: Find FRE for PC not in range", suffix);
 
   /* Search with a PC between func1's last PC and func2's first PC.  */
   lookup_pc = func1_start_vaddr + func1_size + 0x1 - sframe_vaddr,
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: test-2: Find FRE for PC not in range",
-	err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR,
+	"findfunc-1%c: test-2: Find FRE for PC not in range", suffix);
 
   /* Search for a PC between func2's last PC and func3's first PC.  */
   lookup_pc = func2_start_vaddr + func2_size + 0x3 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: test-3: Find FRE for PC not in range",
-	err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR,
+	"findfunc-1%c: test-3: Find FRE for PC not in range", suffix);
 
   /* Search for a PC beyond the last func, i.e., > func3's last PC.  */
   lookup_pc = func3_start_vaddr + func3_size + 0x10 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: test-4: Find FRE for PC not in range",
-	err == SFRAME_ERR);
+  TEST (err == SFRAME_ERR,
+	"findfunc-1%c: test-4: Find FRE for PC not in range", suffix);
 
   /* And some positive tests... */
 
   /* Find an FRE for PC in FDE1.  */
   lookup_pc = func1_start_vaddr + 0x9 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: Find FRE in FDE1",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2),
+	"findfunc-1%c: Find FRE in FDE1", suffix);
 
   /* Find an FRE for PC in FDE2.  */
   lookup_pc = func2_start_vaddr + 0x11 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: Find FRE in FDE2",
-       (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12),
+	"findfunc-1%c: Find FRE in FDE2", suffix);
 
   /* Find an FRE for PC in FDE3.  */
   lookup_pc = func3_start_vaddr + 0x10 - sframe_vaddr;
   err = sframe_find_fre (dctx, lookup_pc, &frep);
-  TEST ("findfunc-1: Find FRE in FDE3",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x18));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x18),
+	"findfunc-1%c: Find FRE in FDE3", suffix);
 
   sframe_encoder_free (&encode);
   sframe_decoder_free (&dctx);
@@ -246,11 +237,11 @@  int main (void)
   uint32_t text_vaddr = 0x4038b0;
   printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
 	  sframe_vaddr);
-  test_text_findfre (text_vaddr, sframe_vaddr);
+  test_text_findfre ('a', text_vaddr, sframe_vaddr);
 
   sframe_vaddr = 0x4038b0;
   text_vaddr = 0x4b5620;
   printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
 	  sframe_vaddr);
-  test_text_findfre (text_vaddr, sframe_vaddr);
+  test_text_findfre ('b', text_vaddr, sframe_vaddr);
 }
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-1.c b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
index b41588a4139..f62ca3f84f5 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
@@ -54,7 +54,8 @@  add_plt_fde1 (sframe_encoder_ctx *ectx, uint32_t plt_vaddr,
 }
 
 static
-void test_plt_findfre (uint32_t plt_vaddr, uint32_t sframe_vaddr)
+void test_plt_findfre (const char suffix, uint32_t plt_vaddr,
+		       uint32_t sframe_vaddr)
 {
   sframe_encoder_ctx *ectx;
   sframe_decoder_ctx *dctx;
@@ -64,16 +65,6 @@  void test_plt_findfre (uint32_t plt_vaddr, uint32_t sframe_vaddr)
   int err = 0;
   uint32_t fde_cnt = 0;
 
-#define TEST(name, cond)                                                      \
-  do                                                                          \
-    {                                                                         \
-      if (cond)                                                               \
-	pass (name);                                                          \
-      else                                                                    \
-	fail (name);                                                          \
-    }                                                                         \
-    while (0)
-
   ectx = sframe_encode (SFRAME_VERSION, SFRAME_F_FDE_FUNC_START_PCREL,
 			SFRAME_ABI_AMD64_ENDIAN_LITTLE,
 			SFRAME_CFA_FIXED_FP_INVALID,
@@ -81,50 +72,50 @@  void test_plt_findfre (uint32_t plt_vaddr, uint32_t sframe_vaddr)
 			&err);
 
   err = add_plt_fde1 (ectx, plt_vaddr, sframe_vaddr, 0);
-  TEST ("plt-findfre-1: Adding FDE1 for plt", err == 0);
+  TEST (err == 0, "plt-findfre-1%c: Adding FDE1 for plt", suffix);
 
   fde_cnt = sframe_encoder_get_num_fidx (ectx);
-  TEST ("plt-findfre-1: Test FDE count", fde_cnt == 1);
+  TEST (fde_cnt == 1, "plt-findfre-1%c: Test FDE count", suffix);
 
   sframe_buf = sframe_encoder_write (ectx, &sf_size, &err);
-  TEST ("plt-findfre-1: Encoder write", err == 0);
+  TEST (err == 0, "plt-findfre-1%c: Encoder write", suffix);
 
   dctx = sframe_decode (sframe_buf, sf_size, &err);
-  TEST ("plt-findfre-1: Decoder setup", dctx != NULL);
+  TEST (dctx != NULL, "plt-findfre-1%c: Decoder setup", suffix);
 
   /* Find the first FRE in PLT1.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 0x0 - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find first FRE in PLT1",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1),
+       "plt-findfre-1%c: Find first FRE in PLT1", suffix);
 
   /* Find the second FRE.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 0x6 - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find second FRE in PLT1",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2),
+	"plt-findfre-1%c: Find second FRE in PLT1", suffix);
 
   /* Find the last FRE.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 0xc - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find last FRE in PLT1",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3),
+	"plt-findfre-1%c: Find last FRE in PLT1", suffix);
 
   /* Find the first FRE in PLT4.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0x0 - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find first FRE in PLT4",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1),
+	"plt-findfre-1%c: Find first FRE in PLT4", suffix);
 
   /* Find the second FRE in PLT4.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0x6 - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find second FRE in PLT4",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2),
+	"plt-findfre-1%c: Find second FRE in PLT4", suffix);
 
   /* Find the last FRE in PLT4.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0xc - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find last FRE in PLT4",
-	(err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
+  TEST ((err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3),
+	"plt-findfre-1%c: Find last FRE in PLT4", suffix);
 
   /* Find no FRE for out of range PLT6.  */
   err = sframe_find_fre (dctx, (plt_vaddr + 16*5 + 0x0 - sframe_vaddr), &frep);
-  TEST ("plt-findfre-1: Find no FRE for out of range PLT6", err != 0);
+  TEST (err != 0, "plt-findfre-1%c: Find no FRE for out of range PLT6", suffix);
 
   sframe_encoder_free (&ectx);
   sframe_decoder_free (&dctx);
@@ -136,11 +127,11 @@  int main (void)
   uint32_t plt_vaddr = 0x401020;
   printf ("Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", plt_vaddr,
 	  sframe_vaddr);
-  test_plt_findfre (plt_vaddr, sframe_vaddr);
+  test_plt_findfre ('a', plt_vaddr, sframe_vaddr);
 
   sframe_vaddr = 0x401020;
   plt_vaddr = 0x402220;
   printf ("Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", plt_vaddr,
 	  sframe_vaddr);
-  test_plt_findfre (plt_vaddr, sframe_vaddr);
+  test_plt_findfre ('b', plt_vaddr, sframe_vaddr);
 }
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-2.c b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
index 61f04f00c2d..097d23bfff0 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-2.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
@@ -105,16 +105,6 @@  void test_plt_findfre (const char suffix, const uint32_t plt_vaddr,
   unsigned int fde_cnt = 0;
   int i;
 
-#define TEST(cond, ...)							\
-  do									\
-    {									\
-      if (cond)								\
-	pass (__VA_ARGS__);						\
-      else								\
-	fail (__VA_ARGS__);						\
-    }									\
-    while (0)
-
   ectx = sframe_encode (SFRAME_VERSION, SFRAME_F_FDE_FUNC_START_PCREL,
 			SFRAME_ABI_S390X_ENDIAN_BIG,
 			SFRAME_CFA_FIXED_FP_INVALID,
diff --git a/libsframe/testsuite/sframe-test.h b/libsframe/testsuite/sframe-test.h
index d5db96bd081..8b430e4ac35 100644
--- a/libsframe/testsuite/sframe-test.h
+++ b/libsframe/testsuite/sframe-test.h
@@ -40,4 +40,14 @@  void wait (void);
 #include <dejagnu.h>
 #undef wait
 
+#define TEST(cond, ...)							\
+  do									\
+    {									\
+      if (cond)								\
+	pass (__VA_ARGS__);						\
+      else								\
+	fail (__VA_ARGS__);						\
+    }									\
+    while (0)
+
 #endif /* _SFRAME_TEST_H */