summaryrefslogtreecommitdiff
path: root/dependencies/uthash/tests/test61.c
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/uthash/tests/test61.c')
-rw-r--r--dependencies/uthash/tests/test61.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/dependencies/uthash/tests/test61.c b/dependencies/uthash/tests/test61.c
new file mode 100644
index 000000000..bbb3d1079
--- /dev/null
+++ b/dependencies/uthash/tests/test61.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include "utarray.h"
+
+static int strsort(const void *_a, const void *_b)
+{
+ const char *a = *(const char* const *)_a;
+ const char *b = *(const char* const *)_b;
+ return strcmp(a,b);
+}
+
+int main()
+{
+ UT_array *strs;
+ const char *s, **p;
+
+ utarray_new(strs,&ut_str_icd);
+
+ s = "hello";
+ utarray_push_back(strs, &s);
+ s = "world";
+ utarray_push_back(strs, &s);
+ s = "one";
+ utarray_push_back(strs, &s);
+ s = "two";
+ utarray_push_back(strs, &s);
+ s = "three";
+ utarray_push_back(strs, &s);
+
+ p = NULL;
+ while ( (p=(const char**)utarray_next(strs,p)) != NULL ) {
+ s = *p;
+ printf("%s\n",s);
+ }
+
+ printf("sorting\n");
+ utarray_sort(strs,strsort);
+
+ p = NULL;
+ while ( (p=(const char**)utarray_next(strs,p)) != NULL ) {
+ s = *p;
+ printf("finding %s\n",s);
+#ifdef __cplusplus
+ p = (const char**)utarray_find(strs,&s,strsort);
+#else
+ p = utarray_find(strs,&s,strsort);
+#endif
+ printf(" %s\n", (p != NULL) ? (*p) : "failed");
+ }
+
+ utarray_free(strs);
+
+ return 0;
+}