libctf: fix testsuite bugs revealed by -Wall

Message ID 20240619135938.155919-1-nick.alcock@oracle.com
State New
Headers
Series libctf: fix testsuite bugs revealed by -Wall |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 warning Patch is already merged

Commit Message

Nick Alcock June 19, 2024, 1:59 p.m. UTC
  Most of these are harmless, but some of the type confusions and especially
a missing ctf_strerror() on an error path were actual bugs that could
have resulted in test failures crashing rather than printing an error
message.

libctf/
	* testsuite/libctf-lookup/enumerator-iteration.c: Fix type
        confusion, signedness confusion and a missing ctf_errmsg().
	* testsuite/libctf-regression/libctf-repeat-cu-main.c: Return 0 from
        the test function.
	* testsuite/libctf-regression/open-error-free.c: Fix signedness
        confusion.
	* testsuite/libctf-regression/zrewrite.c: Remove unused label.
---
 .../libctf-lookup/enumerator-iteration.c          | 15 +++++++--------
 .../libctf-regression/libctf-repeat-cu-main.c     |  2 +-
 .../testsuite/libctf-regression/open-error-free.c |  2 +-
 libctf/testsuite/libctf-regression/zrewrite.c     |  3 ---
 4 files changed, 9 insertions(+), 13 deletions(-)
  

Comments

Nick Alcock June 20, 2024, 12:19 p.m. UTC | #1
On 19 Jun 2024, Nick Alcock stated:

> Most of these are harmless, but some of the type confusions and especially
> a missing ctf_strerror() on an error path were actual bugs that could
> have resulted in test failures crashing rather than printing an error
> message.

Pushed, bunsen et al should be happy again.
  

Patch

diff --git a/libctf/testsuite/libctf-lookup/enumerator-iteration.c b/libctf/testsuite/libctf-lookup/enumerator-iteration.c
index e46dad6dc70..78cb5a3cc0d 100644
--- a/libctf/testsuite/libctf-lookup/enumerator-iteration.c
+++ b/libctf/testsuite/libctf-lookup/enumerator-iteration.c
@@ -23,8 +23,8 @@  print_constants (ctf_archive_t *ctf, const char *name)
     {
       char *foo;
 
-      printf ("%s in %s has value %i\n", name,
-	      foo = ctf_type_aname (fp, type), val);
+      printf ("%s in %s has value %li\n", name,
+	      foo = ctf_type_aname (fp, type), (long int) val);
       free (foo);
 
       ctf_dict_close (fp);
@@ -44,7 +44,6 @@  main (int argc, char *argv[])
   int err;
   ctf_id_t type;
   ctf_next_t *i = NULL;
-  const char *name;
   int64_t val;
   int counter = 0;
 
@@ -71,8 +70,8 @@  main (int argc, char *argv[])
     {
       char *foo;
 
-      printf ("IENUMSAMPLE2_2 in %s has value %i\n",
-	      foo = ctf_type_aname (fp, type), val);
+      printf ("IENUMSAMPLE2_2 in %s has value %li\n",
+	      foo = ctf_type_aname (fp, type), (long int) val);
       free (foo);
 
       if ((type = ctf_add_enum (fp, CTF_ADD_ROOT, "ie3")) == CTF_ERR)
@@ -117,13 +116,13 @@  main (int argc, char *argv[])
 	  if (type != CTF_ERR)
 	    {
 	      char *foo;
-	      printf ("direct lookup: hidden lookup did not return ECTF_NOENUMNAM but rather %i in %s\n",
-		      val, foo = ctf_type_aname (fp, type));
+	      printf ("direct lookup: hidden lookup did not return ECTF_NOENUMNAM but rather %li in %s\n",
+		      (long int) val, foo = ctf_type_aname (fp, type));
 	      free (foo);
 	    }
 	  else
 	    printf ("direct lookup: hidden lookup did not return ECTF_NOENUMNAM but rather %s\n",
-		    ctf_errno (fp));
+		    ctf_errmsg (ctf_errno (fp)));
 	}
 
       ctf_dict_close (fp);
diff --git a/libctf/testsuite/libctf-regression/libctf-repeat-cu-main.c b/libctf/testsuite/libctf-regression/libctf-repeat-cu-main.c
index bfbaf0cc8dc..c1f2f6318c1 100644
--- a/libctf/testsuite/libctf-regression/libctf-repeat-cu-main.c
+++ b/libctf/testsuite/libctf-regression/libctf-repeat-cu-main.c
@@ -2,4 +2,4 @@  typedef short ret_t;
 int a (void);
 int b (void);
 int c (void);
-int blah (void) { a(); b(); c(); }
+int blah (void) { a(); b(); c(); return 0; }
diff --git a/libctf/testsuite/libctf-regression/open-error-free.c b/libctf/testsuite/libctf-regression/open-error-free.c
index edc5f348d5f..7405cdb25f3 100644
--- a/libctf/testsuite/libctf-regression/open-error-free.c
+++ b/libctf/testsuite/libctf-regression/open-error-free.c
@@ -143,7 +143,7 @@  int main (void)
      failure after we corrupt it: the leak is only observable if the dict gets
      malloced, which only happens after that point.)  */
 
-  if ((written = ctf_write_mem (fp, &written_size, (size_t) -1)) == NULL)
+  if ((written = (char *) ctf_write_mem (fp, &written_size, (size_t) -1)) == NULL)
     goto write_err;
 
   ctf_dict_close (fp);
diff --git a/libctf/testsuite/libctf-regression/zrewrite.c b/libctf/testsuite/libctf-regression/zrewrite.c
index 5e061f10a5f..3ddc354d2e3 100644
--- a/libctf/testsuite/libctf-regression/zrewrite.c
+++ b/libctf/testsuite/libctf-regression/zrewrite.c
@@ -150,7 +150,4 @@  main (int argc, char *argv[])
  write_stderr:
   fprintf (stderr, "%s: cannot open for writing: %s\n", argv[0], strerror (errno));
   return 1;
- read_err: 
-  fprintf (stderr, "%s: cannot read\n", argv[0]);
-  return 1;
 }