[PATCH libdrm 5/9] tests/hash: return non-zero on failure
Emil Velikov
emil.l.velikov at gmail.com
Sun Mar 22 15:03:41 PDT 2015
... and wire up to `make check' now that it's useful.
Signed-off-by: Emil Velikov <emil.l.velikov at 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);
--
2.3.1
More information about the dri-devel
mailing list