From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 15 Jul 2018 16:17:11 +0300 From: Vladimir Davydov Subject: Re: [PATCH 1/3] stailq: add stailq_insert function Message-ID: <20180715131711.ngry6tykfhog5zdm@esperanza> References: <20180715070244.GA3264@chai> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180715070244.GA3264@chai> To: Konstantin Osipov Cc: tarantool-patches@freelists.org List-ID: On Sun, Jul 15, 2018 at 10:02:44AM +0300, Konstantin Osipov wrote: > * Vladimir Davydov [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 #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)