diff mbox

[libdrm,5/9] tests/hash: return non-zero on failure

Message ID 1427061825-27470-6-git-send-email-emil.l.velikov@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Emil Velikov March 22, 2015, 10:03 p.m. UTC
... and wire up to `make check' now that it's useful.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
---
 tests/Makefile.am | 12 +++++++-----
 tests/hash.c      | 26 +++++++++++++++-----------
 2 files changed, 22 insertions(+), 16 deletions(-)

Comments

Jan Vesely March 23, 2015, 11:08 p.m. UTC | #1
On Sun, 2015-03-22 at 22:03 +0000, Emil Velikov wrote:
> ... and wire up to `make check' now that it's useful.
> 
> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
> ---
>  tests/Makefile.am | 12 +++++++-----
>  tests/hash.c      | 26 +++++++++++++++-----------
>  2 files changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index ea826b5..392abf5 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -29,13 +29,15 @@ LDADD = $(top_builddir)/libdrm.la
>  
>  check_PROGRAMS = \
>  	dristat \
> -	drmstat \
> -	hash
> +	drmstat
>  
>  if HAVE_NOUVEAU
>  SUBDIRS += nouveau
>  endif
>  
> +TESTS = \
> +	hash
> +
>  if HAVE_LIBUDEV
>  
>  check_LTLIBRARIES = libdrmtest.la
> @@ -53,7 +55,7 @@ XFAIL_TESTS =					\
>  	auth					\
>  	lock
>  
> -TESTS =						\
> +TESTS  += \
>  	openclose				\
>  	getversion				\
>  	getclient				\
> @@ -62,6 +64,6 @@ TESTS =						\
>  	updatedraw				\
>  	name_from_fd
>  
> -check_PROGRAMS += $(TESTS)
> -
>  endif
> +
> +check_PROGRAMS += $(TESTS)
> diff --git a/tests/hash.c b/tests/hash.c
> index fa9264a..46f52f8 100644
> --- a/tests/hash.c
> +++ b/tests/hash.c
> @@ -142,7 +142,7 @@ static void compute_dist(HashTablePtr table)
>      }
>  }
>  
> -static void check_table(HashTablePtr table,
> +static int check_table(HashTablePtr table,
>                          unsigned long key, unsigned long value)
>  {
>      unsigned long *retval;
> @@ -159,28 +159,32 @@ static void check_table(HashTablePtr table,
>                 key, value, *retval);
>          break;
>      case 0:
> -        if (value != *retval)
> +        if (value != *retval) {
>              printf("Bad value: key = %lu, expected = %lu, returned = %lu\n",
>                     key, value, *retval);
> +            retcode = -1;
> +        }
>          break;
>      default:
>          printf("Bad retcode = %d: key = %lu, expected = %lu, returned = %lu\n",
>                 retcode, key, value, *retval);
>          break;
>      }
> +    return retcode;
>  }
>  
>  int main(void)
>  {
> -    HashTablePtr table;
> -    unsigned long  i;
> +    HashTablePtr  table;
> +    unsigned long i;
> +    int           ret = 0;
>  
>      printf("\n***** 256 consecutive integers ****\n");
>      table = drmHashCreate();
>      for (i = 0; i < 256; i++)
>          drmHashInsert(table, i, (void *)&i);
>      for (i = 0; i < 256; i++)
> -        check_table(table, i, i);
> +        ret = check_table(table, i, i) && ret;
>      compute_dist(table);
>      drmHashDestroy(table);
>  
> @@ -189,7 +193,7 @@ int main(void)
>      for (i = 0; i < 1024; i++)
>          drmHashInsert(table, i, (void *)&i);
>      for (i = 0; i < 1024; i++)
> -        check_table(table, i, i);
> +        ret = check_table(table, i, i) && ret;
>      compute_dist(table);
>      drmHashDestroy(table);
>  
> @@ -198,7 +202,7 @@ int main(void)
>      for (i = 0; i < 1024; i++)
>          drmHashInsert(table, i*4096, (void *)&i);
>      for (i = 0; i < 1024; i++)
> -        check_table(table, i*4096, i);
> +        ret = check_table(table, i*4096, i) && ret;
>      compute_dist(table);
>      drmHashDestroy(table);
>  
> @@ -209,10 +213,10 @@ int main(void)
>          drmHashInsert(table, random(), (void *)&i);
>      srandom(0xbeefbeef);
>      for (i = 0; i < 1024; i++)
> -        check_table(table, random(), i);
> +        ret = check_table(table, random(), i) && ret;
>      srandom(0xbeefbeef);
>      for (i = 0; i < 1024; i++)
> -        check_table(table, random(), i);
> +        ret = check_table(table, random(), i) && ret;
>      compute_dist(table);
>      drmHashDestroy(table);
>  
> @@ -223,10 +227,10 @@ int main(void)
>          drmHashInsert(table, random(), (void *)&i);
>      srandom(0xbeefbeef);
>      for (i = 0; i < 5000; i++)
> -        check_table(table, random(), i);
> +        ret = check_table(table, random(), i) && ret;
>      srandom(0xbeefbeef);
>      for (i = 0; i < 5000; i++)
> -        check_table(table, random(), i);
> +        ret = check_table(table, random(), i) && ret;
>      compute_dist(table);
>      drmHashDestroy(table);
>  
Reviewed-by: Jan Vesely <jan.vesely@rutgesr.edu>
diff mbox

Patch

diff --git a/tests/Makefile.am b/tests/Makefile.am
index ea826b5..392abf5 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -29,13 +29,15 @@  LDADD = $(top_builddir)/libdrm.la
 
 check_PROGRAMS = \
 	dristat \
-	drmstat \
-	hash
+	drmstat
 
 if HAVE_NOUVEAU
 SUBDIRS += nouveau
 endif
 
+TESTS = \
+	hash
+
 if HAVE_LIBUDEV
 
 check_LTLIBRARIES = libdrmtest.la
@@ -53,7 +55,7 @@  XFAIL_TESTS =					\
 	auth					\
 	lock
 
-TESTS =						\
+TESTS  += \
 	openclose				\
 	getversion				\
 	getclient				\
@@ -62,6 +64,6 @@  TESTS =						\
 	updatedraw				\
 	name_from_fd
 
-check_PROGRAMS += $(TESTS)
-
 endif
+
+check_PROGRAMS += $(TESTS)
diff --git a/tests/hash.c b/tests/hash.c
index fa9264a..46f52f8 100644
--- a/tests/hash.c
+++ b/tests/hash.c
@@ -142,7 +142,7 @@  static void compute_dist(HashTablePtr table)
     }
 }
 
-static void check_table(HashTablePtr table,
+static int check_table(HashTablePtr table,
                         unsigned long key, unsigned long value)
 {
     unsigned long *retval;
@@ -159,28 +159,32 @@  static void check_table(HashTablePtr table,
                key, value, *retval);
         break;
     case 0:
-        if (value != *retval)
+        if (value != *retval) {
             printf("Bad value: key = %lu, expected = %lu, returned = %lu\n",
                    key, value, *retval);
+            retcode = -1;
+        }
         break;
     default:
         printf("Bad retcode = %d: key = %lu, expected = %lu, returned = %lu\n",
                retcode, key, value, *retval);
         break;
     }
+    return retcode;
 }
 
 int main(void)
 {
-    HashTablePtr table;
-    unsigned long  i;
+    HashTablePtr  table;
+    unsigned long i;
+    int           ret = 0;
 
     printf("\n***** 256 consecutive integers ****\n");
     table = drmHashCreate();
     for (i = 0; i < 256; i++)
         drmHashInsert(table, i, (void *)&i);
     for (i = 0; i < 256; i++)
-        check_table(table, i, i);
+        ret = check_table(table, i, i) && ret;
     compute_dist(table);
     drmHashDestroy(table);
 
@@ -189,7 +193,7 @@  int main(void)
     for (i = 0; i < 1024; i++)
         drmHashInsert(table, i, (void *)&i);
     for (i = 0; i < 1024; i++)
-        check_table(table, i, i);
+        ret = check_table(table, i, i) && ret;
     compute_dist(table);
     drmHashDestroy(table);
 
@@ -198,7 +202,7 @@  int main(void)
     for (i = 0; i < 1024; i++)
         drmHashInsert(table, i*4096, (void *)&i);
     for (i = 0; i < 1024; i++)
-        check_table(table, i*4096, i);
+        ret = check_table(table, i*4096, i) && ret;
     compute_dist(table);
     drmHashDestroy(table);
 
@@ -209,10 +213,10 @@  int main(void)
         drmHashInsert(table, random(), (void *)&i);
     srandom(0xbeefbeef);
     for (i = 0; i < 1024; i++)
-        check_table(table, random(), i);
+        ret = check_table(table, random(), i) && ret;
     srandom(0xbeefbeef);
     for (i = 0; i < 1024; i++)
-        check_table(table, random(), i);
+        ret = check_table(table, random(), i) && ret;
     compute_dist(table);
     drmHashDestroy(table);
 
@@ -223,10 +227,10 @@  int main(void)
         drmHashInsert(table, random(), (void *)&i);
     srandom(0xbeefbeef);
     for (i = 0; i < 5000; i++)
-        check_table(table, random(), i);
+        ret = check_table(table, random(), i) && ret;
     srandom(0xbeefbeef);
     for (i = 0; i < 5000; i++)
-        check_table(table, random(), i);
+        ret = check_table(table, random(), i) && ret;
     compute_dist(table);
     drmHashDestroy(table);