[tarantool-patches] Re: [PATCH 1/3] stailq: add stailq_insert function

  • From: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
  • To: Konstantin Osipov <kostja@xxxxxxxxxxxxx>
  • Date: Sun, 15 Jul 2018 16:17:11 +0300

On Sun, Jul 15, 2018 at 10:02:44AM +0300, Konstantin Osipov wrote:

* Vladimir Davydov <vdavydov.dev@xxxxxxxxx> [18/07/13 17:22]:
The new function inserts a new item into the list at the specified
postion.
---
 src/lib/salad/stailq.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)


Please add a unit test.

Done (amended the commit on the branch). The diff is below.

diff --git a/test/unit/stailq.c b/test/unit/stailq.c
index 12f05a0c..600f71a5 100644
--- a/test/unit/stailq.c
+++ b/test/unit/stailq.c
@@ -3,7 +3,7 @@
 #include <stdarg.h>
 #include "unit.h"
 
-#define PLAN           68
+#define PLAN           75
 
 #define ITEMS          7
 
@@ -111,5 +111,19 @@ main(void)
                is(it, items + i, "head element after concat %d", i);
                i++;
        }
+
+       stailq_create(&head);
+       stailq_add_entry(&head, &items[0], next);
+       stailq_insert(&head, &items[2].next, &items[0].next);
+       stailq_insert(&head, &items[1].next, &items[0].next);
+       stailq_insert_entry(&head, &items[4], &items[2], next);
+       stailq_insert_entry(&head, &items[3], &items[2], next);
+       i = 0;
+       stailq_foreach_entry(it, &head, next) {
+               is(it, items + i, "element %d (insert)", i);
+               i++;
+       }
+       is(stailq_first(&head), &items[0].next, "first item (insert)");
+       is(stailq_last(&head), &items[4].next, "last item (insert)");
        return check_plan();
 }
diff --git a/test/unit/stailq.result b/test/unit/stailq.result
index 78d3e721..04154500 100644
--- a/test/unit/stailq.result
+++ b/test/unit/stailq.result
@@ -1,4 +1,4 @@
-1..68
+1..75
 ok 1 - list is empty
 ok 2 - list is empty after reverse
 ok 3 - first item
@@ -67,3 +67,10 @@ ok 65 - head element after concat 3
 ok 66 - head element after concat 4
 ok 67 - head element after concat 5
 ok 68 - head element after concat 6
+ok 69 - element 0 (insert)
+ok 70 - element 1 (insert)
+ok 71 - element 2 (insert)
+ok 72 - element 3 (insert)
+ok 73 - element 4 (insert)
+ok 74 - first item (insert)
+ok 75 - last item (insert)

Other related posts: