aboutsummaryrefslogtreecommitdiff
path: root/tests/test35.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test35.c')
-rw-r--r--tests/test35.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test35.c b/tests/test35.c
new file mode 100644
index 000000000..a9c82b9c5
--- /dev/null
+++ b/tests/test35.c
@@ -0,0 +1,37 @@
+#include "uthash.h"
+#include <string.h> /* strcpy */
+#include <stdlib.h> /* malloc */
+#include <stdio.h> /* printf */
+
+typedef struct elt {
+ char *s;
+ UT_hash_handle hh;
+} elt;
+
+int main()
+{
+ int i;
+ elt *head = NULL;
+ elt elts[10];
+ char label[6] = "hello";
+ for(i=0; i<10; i++) {
+ elts[i].s = (char*)malloc(6UL);
+ strcpy(elts[i].s, "hello");
+ elts[i].s[0] = 'a' + i;
+ printf("%d: %s\n", i, elts[i].s);
+ HASH_ADD_KEYPTR(hh, head, elts[i].s, 6UL, &elts[i]);
+ }
+
+ /* look up each element and verify the result pointer */
+ for(i=0; i<10; i++) {
+ elt *e;
+ label[0] = 'a' + i;
+ HASH_FIND(hh,head,label,6UL,e);
+ if (e != NULL) {
+ printf( "found %s\n", e->s);
+ printf( "right address? %s\n", (e == &elts[i]) ? "yes" : "no");
+ }
+ }
+
+ return 0;
+}