aboutsummaryrefslogtreecommitdiff
path: root/dependencies/uthash/tests/test68.c
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2020-12-01 13:33:34 +0100
committerToni Uhlig <matzeton@googlemail.com>2020-12-01 13:33:34 +0100
commit00e5132a803f8781b6f538625ab99816b7b52d2d (patch)
tree726a07ea8b2b6f35135dd253ecd8dc0768b09f42 /dependencies/uthash/tests/test68.c
parent32b192df3b898b4199325309a6113ae7efa3556e (diff)
parentc8bf38e5fb717d40635a2a89b22ed71b0de4266b (diff)
Merge commit 'c8bf38e5fb717d40635a2a89b22ed71b0de4266b' as 'dependencies/uthash'
Diffstat (limited to 'dependencies/uthash/tests/test68.c')
-rw-r--r--dependencies/uthash/tests/test68.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/dependencies/uthash/tests/test68.c b/dependencies/uthash/tests/test68.c
new file mode 100644
index 000000000..090f7d022
--- /dev/null
+++ b/dependencies/uthash/tests/test68.c
@@ -0,0 +1,87 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include "utlist.h"
+
+typedef struct el {
+ int id;
+ struct el *next, *prev;
+} el;
+
+int main()
+{
+ int i;
+ el els[20], *e, *tmp;
+ el *headA = NULL;
+ el *headB = NULL;
+ for(i=0; i<20; i++) {
+ els[i].id=(int)'a'+i;
+ }
+
+ /* test DL macros */
+ printf("DL replace elem\n");
+ DL_APPEND(headA,&els[0]);
+ DL_APPEND(headA,&els[1]);
+ DL_APPEND(headA,&els[2]);
+ DL_APPEND(headA,&els[3]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ /* replace head elem */
+ DL_REPLACE_ELEM(headA, &els[0], &els[4]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+ DL_REPLACE_ELEM(headA, &els[4], &els[5]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ /* replace last elem */
+ DL_REPLACE_ELEM(headA, &els[3], &els[6]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+ DL_REPLACE_ELEM(headA, &els[6], &els[7]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ /* replace middle elem */
+ DL_REPLACE_ELEM(headA, &els[1], &els[8]);
+ DL_REPLACE_ELEM(headA, &els[2], &els[9]);
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ /* replace all just to be sure the list is intact... */
+ i = 10;
+ DL_FOREACH_SAFE(headA, e, tmp) {
+ DL_REPLACE_ELEM(headA, e, &els[i]);
+ i++;
+ }
+ DL_FOREACH(headA,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ /* single elem */
+ DL_APPEND(headB, &els[18]);
+ DL_FOREACH(headB,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+ DL_REPLACE_ELEM(headB, &els[18], &els[19]);
+ DL_FOREACH(headB,e) {
+ printf("%c ", e->id);
+ }
+ printf("\n");
+
+ return 0;
+}