<p>neels <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/23359">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">drop neighbor_ident_test.c<br><br>This tests the opaquely designed neighbor config storage. However, a<br>subsequent patch will refactor the neighbor config storage, and this<br>neighbor ident API will change fundamentally. No need to test this.<br><br>The new storage will use the usual scheme of transparent struct and<br>llist, the opaque design is not necessary and just bloats. There is no<br>need to test a plain llist, so this test needs no replacement.<br><br>Related: OS#5018<br>Change-Id: I6522796bf0bbb9ab83e49168bcbff7bc70fd6c6d<br>---<br>M tests/handover/Makefile.am<br>D tests/handover/neighbor_ident_test.c<br>D tests/handover/neighbor_ident_test.err<br>D tests/handover/neighbor_ident_test.ok<br>M tests/testsuite.at<br>5 files changed, 0 insertions(+), 478 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am</span><br><span>index 3951624..b3bc21f 100644</span><br><span>--- a/tests/handover/Makefile.am</span><br><span>+++ b/tests/handover/Makefile.am</span><br><span>@@ -24,13 +24,10 @@</span><br><span>   handover_tests.sh \</span><br><span>  handover_tests.ok \</span><br><span>  $(srcdir)/test*.ho_vty \</span><br><span style="color: hsl(0, 100%, 40%);">-        neighbor_ident_test.ok \</span><br><span style="color: hsl(0, 100%, 40%);">-        neighbor_ident_test.err \</span><br><span>    $(NULL)</span><br><span> </span><br><span> noinst_PROGRAMS = \</span><br><span>   handover_test \</span><br><span style="color: hsl(0, 100%, 40%);">- neighbor_ident_test \</span><br><span>        $(NULL)</span><br><span> </span><br><span> handover_test_SOURCES = \</span><br><span>@@ -118,18 +115,6 @@</span><br><span>      $(LIBOSMOMGCPCLIENT_LIBS) \</span><br><span>  $(NULL)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_test_SOURCES = \</span><br><span style="color: hsl(0, 100%, 40%);">-      neighbor_ident_test.c \</span><br><span style="color: hsl(0, 100%, 40%);">- $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_test_LDADD = \</span><br><span style="color: hsl(0, 100%, 40%);">-    $(top_builddir)/src/osmo-bsc/neighbor_ident.o \</span><br><span style="color: hsl(0, 100%, 40%);">- $(LIBOSMOCORE_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBOSMOGSM_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-    $(LIBOSMOCTRL_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> .PHONY: update_exp</span><br><span> update_exp:</span><br><span style="color: hsl(0, 100%, 40%);">-    $(builddir)/neighbor_ident_test >$(srcdir)/neighbor_ident_test.ok 2>$(srcdir)/neighbor_ident_test.err</span><br><span>  $(srcdir)/handover_tests.sh $(srcdir) $(builddir) -u</span><br><span>diff --git a/tests/handover/neighbor_ident_test.c b/tests/handover/neighbor_ident_test.c</span><br><span>deleted file mode 100644</span><br><span>index 9acbea0..0000000</span><br><span>--- a/tests/handover/neighbor_ident_test.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,270 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* Test the neighbor_ident.h API */</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">- * (C) 2018 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de></span><br><span style="color: hsl(0, 100%, 40%);">- * All Rights Reserved</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de></span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(0, 100%, 40%);">- * it under the terms of the GNU Affero General Public License as published by</span><br><span style="color: hsl(0, 100%, 40%);">- * the Free Software Foundation; either version 3 of the License, or</span><br><span style="color: hsl(0, 100%, 40%);">- * (at your option) any later version.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(0, 100%, 40%);">- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(0, 100%, 40%);">- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(0, 100%, 40%);">- * GNU General Public License for more details.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * You should have received a copy of the GNU Affero General Public License</span><br><span style="color: hsl(0, 100%, 40%);">- * along with this program.  If not, see <http://www.gnu.org/licenses/>.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <talloc.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <stdio.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <errno.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/gsm0808.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/neighbor_ident.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct neighbor_ident_list *nil;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const struct neighbor_ident_key *k(int from_bts, uint16_t arfcn, uint8_t bsic)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    static struct neighbor_ident_key key;</span><br><span style="color: hsl(0, 100%, 40%);">-   key = (struct neighbor_ident_key){</span><br><span style="color: hsl(0, 100%, 40%);">-              .from_bts = from_bts,</span><br><span style="color: hsl(0, 100%, 40%);">-           .arfcn = arfcn,</span><br><span style="color: hsl(0, 100%, 40%);">-         .bsic = bsic,</span><br><span style="color: hsl(0, 100%, 40%);">-   };</span><br><span style="color: hsl(0, 100%, 40%);">-      return &key;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const struct gsm0808_cell_id_list2 cgi1 = {</span><br><span style="color: hsl(0, 100%, 40%);">-     .id_discr = CELL_IDENT_WHOLE_GLOBAL,</span><br><span style="color: hsl(0, 100%, 40%);">-    .id_list_len = 1,</span><br><span style="color: hsl(0, 100%, 40%);">-       .id_list = {</span><br><span style="color: hsl(0, 100%, 40%);">-            {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .global = {</span><br><span style="color: hsl(0, 100%, 40%);">-                             .lai = {</span><br><span style="color: hsl(0, 100%, 40%);">-                                        .plmn = { .mcc = 1, .mnc = 2, .mnc_3_digits = false },</span><br><span style="color: hsl(0, 100%, 40%);">-                                  .lac = 3,</span><br><span style="color: hsl(0, 100%, 40%);">-                               },</span><br><span style="color: hsl(0, 100%, 40%);">-                              .cell_identity = 4,</span><br><span style="color: hsl(0, 100%, 40%);">-                     }</span><br><span style="color: hsl(0, 100%, 40%);">-               },</span><br><span style="color: hsl(0, 100%, 40%);">-      },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const struct gsm0808_cell_id_list2 cgi2 = {</span><br><span style="color: hsl(0, 100%, 40%);">-  .id_discr = CELL_IDENT_WHOLE_GLOBAL,</span><br><span style="color: hsl(0, 100%, 40%);">-    .id_list_len = 2,</span><br><span style="color: hsl(0, 100%, 40%);">-       .id_list = {</span><br><span style="color: hsl(0, 100%, 40%);">-            {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .global = {</span><br><span style="color: hsl(0, 100%, 40%);">-                             .lai = {</span><br><span style="color: hsl(0, 100%, 40%);">-                                        .plmn = { .mcc = 1, .mnc = 2, .mnc_3_digits = false },</span><br><span style="color: hsl(0, 100%, 40%);">-                                  .lac = 3,</span><br><span style="color: hsl(0, 100%, 40%);">-                               },</span><br><span style="color: hsl(0, 100%, 40%);">-                              .cell_identity = 4,</span><br><span style="color: hsl(0, 100%, 40%);">-                     }</span><br><span style="color: hsl(0, 100%, 40%);">-               },</span><br><span style="color: hsl(0, 100%, 40%);">-              {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .global = {</span><br><span style="color: hsl(0, 100%, 40%);">-                             .lai = {</span><br><span style="color: hsl(0, 100%, 40%);">-                                        .plmn = { .mcc = 5, .mnc = 6, .mnc_3_digits = true },</span><br><span style="color: hsl(0, 100%, 40%);">-                                   .lac = 7,</span><br><span style="color: hsl(0, 100%, 40%);">-                               },</span><br><span style="color: hsl(0, 100%, 40%);">-                              .cell_identity = 8,</span><br><span style="color: hsl(0, 100%, 40%);">-                     }</span><br><span style="color: hsl(0, 100%, 40%);">-               },</span><br><span style="color: hsl(0, 100%, 40%);">-      },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const struct gsm0808_cell_id_list2 lac1 = {</span><br><span style="color: hsl(0, 100%, 40%);">-  .id_discr = CELL_IDENT_LAC,</span><br><span style="color: hsl(0, 100%, 40%);">-     .id_list_len = 1,</span><br><span style="color: hsl(0, 100%, 40%);">-       .id_list = {</span><br><span style="color: hsl(0, 100%, 40%);">-            {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .lac = 123</span><br><span style="color: hsl(0, 100%, 40%);">-              },</span><br><span style="color: hsl(0, 100%, 40%);">-      },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const struct gsm0808_cell_id_list2 lac2 = {</span><br><span style="color: hsl(0, 100%, 40%);">-  .id_discr = CELL_IDENT_LAC,</span><br><span style="color: hsl(0, 100%, 40%);">-     .id_list_len = 2,</span><br><span style="color: hsl(0, 100%, 40%);">-       .id_list = {</span><br><span style="color: hsl(0, 100%, 40%);">-            {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .lac = 456</span><br><span style="color: hsl(0, 100%, 40%);">-              },</span><br><span style="color: hsl(0, 100%, 40%);">-              {</span><br><span style="color: hsl(0, 100%, 40%);">-                       .lac = 789</span><br><span style="color: hsl(0, 100%, 40%);">-              },</span><br><span style="color: hsl(0, 100%, 40%);">-      },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static void print_cil(const struct gsm0808_cell_id_list2 *cil)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     unsigned int i;</span><br><span style="color: hsl(0, 100%, 40%);">- if (!cil) {</span><br><span style="color: hsl(0, 100%, 40%);">-             printf("     cell_id_list == NULL\n");</span><br><span style="color: hsl(0, 100%, 40%);">-                return;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-       switch (cil->id_discr) {</span><br><span style="color: hsl(0, 100%, 40%);">-     case CELL_IDENT_WHOLE_GLOBAL:</span><br><span style="color: hsl(0, 100%, 40%);">-           printf("     cell_id_list cgi[%u] = {\n", cil->id_list_len);</span><br><span style="color: hsl(0, 100%, 40%);">-               for (i = 0; i < cil->id_list_len; i++)</span><br><span style="color: hsl(0, 100%, 40%);">-                    printf("       %2d: %s\n", i, osmo_cgi_name(&cil->id_list[i].global));</span><br><span style="color: hsl(0, 100%, 40%);">-         printf("     }\n");</span><br><span style="color: hsl(0, 100%, 40%);">-           break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case CELL_IDENT_LAC:</span><br><span style="color: hsl(0, 100%, 40%);">-            printf("     cell_id_list lac[%u] = {\n", cil->id_list_len);</span><br><span style="color: hsl(0, 100%, 40%);">-               for (i = 0; i < cil->id_list_len; i++)</span><br><span style="color: hsl(0, 100%, 40%);">-                    printf("      %2d: %u\n", i, cil->id_list[i].lac);</span><br><span style="color: hsl(0, 100%, 40%);">-         printf("     }\n");</span><br><span style="color: hsl(0, 100%, 40%);">-           break;</span><br><span style="color: hsl(0, 100%, 40%);">-  default:</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("     Unimplemented id_disc\n");</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int print_nil_i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static bool nil_cb(const struct neighbor_ident_key *key, const struct gsm0808_cell_id_list2 *val,</span><br><span style="color: hsl(0, 100%, 40%);">-          void *cb_data)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     printf(" %2d: %s\n", print_nil_i++, neighbor_ident_key_name(key));</span><br><span style="color: hsl(0, 100%, 40%);">-    print_cil(val);</span><br><span style="color: hsl(0, 100%, 40%);">- return true;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static void print_nil()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   print_nil_i = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-        neighbor_ident_iter(nil, nil_cb, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">- if (!print_nil_i)</span><br><span style="color: hsl(0, 100%, 40%);">-               printf("     (empty)\n");</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define check_add(key, val, expect_rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-    do { \</span><br><span style="color: hsl(0, 100%, 40%);">-          int rc; \</span><br><span style="color: hsl(0, 100%, 40%);">-               rc = neighbor_ident_add(nil, key, val); \</span><br><span style="color: hsl(0, 100%, 40%);">-               printf("neighbor_ident_add(" #key ", " #val ") --> expect rc=" #expect_rc ", got %d\n", rc); \</span><br><span style="color: hsl(0, 100%, 40%);">-               if (rc != expect_rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-                  printf("ERROR\n"); \</span><br><span style="color: hsl(0, 100%, 40%);">-          print_nil(); \</span><br><span style="color: hsl(0, 100%, 40%);">-  } while(0)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define check_del(key, expect_rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-   do { \</span><br><span style="color: hsl(0, 100%, 40%);">-          bool rc; \</span><br><span style="color: hsl(0, 100%, 40%);">-              rc = neighbor_ident_del(nil, key); \</span><br><span style="color: hsl(0, 100%, 40%);">-            printf("neighbor_ident_del(" #key ") --> %s\n", rc ? "entry deleted" : "nothing deleted"); \</span><br><span style="color: hsl(0, 100%, 40%);">-         if (rc != expect_rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-                  printf("ERROR: expected: %s\n", expect_rc ? "entry deleted" : "nothing deleted"); \</span><br><span style="color: hsl(0, 100%, 40%);">-               print_nil(); \</span><br><span style="color: hsl(0, 100%, 40%);">-  } while(0)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define check_get(key, expect_rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-   do { \</span><br><span style="color: hsl(0, 100%, 40%);">-          const struct gsm0808_cell_id_list2 *rc; \</span><br><span style="color: hsl(0, 100%, 40%);">-               rc = neighbor_ident_get(nil, key); \</span><br><span style="color: hsl(0, 100%, 40%);">-            printf("neighbor_ident_get(" #key ") --> %s\n", \</span><br><span style="color: hsl(0, 100%, 40%);">-                       rc ? "entry returned" : "NULL"); \</span><br><span style="color: hsl(0, 100%, 40%);">-           if (((bool)expect_rc) != ((bool) rc)) \</span><br><span style="color: hsl(0, 100%, 40%);">-                 printf("ERROR: expected %s\n", expect_rc ? "an entry" : "NULL"); \</span><br><span style="color: hsl(0, 100%, 40%);">-                if (rc) \</span><br><span style="color: hsl(0, 100%, 40%);">-                       print_cil(rc); \</span><br><span style="color: hsl(0, 100%, 40%);">-        } while(0)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int main(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       void *ctx = talloc_named_const(NULL, 0, "neighbor_ident_test");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n--- testing NULL neighbor_ident_list\n");</span><br><span style="color: hsl(0, 100%, 40%);">-   nil = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-     check_add(k(0, 1, 2), &cgi1, -ENOMEM);</span><br><span style="color: hsl(0, 100%, 40%);">-      check_get(k(0, 1, 2), false);</span><br><span style="color: hsl(0, 100%, 40%);">-   check_del(k(0, 1, 2), false);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("\n--- adding entries, test that no two identical entries are added\n");</span><br><span style="color: hsl(0, 100%, 40%);">-       nil = neighbor_ident_init(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">- check_add(k(0, 1, 2), &cgi1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(0, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(0, 1, 2), &cgi1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(0, 1, 2), &cgi2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(0, 1, 2), &cgi2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_del(k(0, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("\n--- Cannot mix cell identifier types for one entry\n");</span><br><span style="color: hsl(0, 100%, 40%);">-     check_add(k(0, 1, 2), &cgi1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(0, 1, 2), &lac1, -EINVAL);</span><br><span style="color: hsl(0, 100%, 40%);">-      check_del(k(0, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    neighbor_ident_free(nil);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n--- BTS matching: specific BTS is stronger\n");</span><br><span style="color: hsl(0, 100%, 40%);">-     nil = neighbor_ident_init(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">- check_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, 2), &lac1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-   check_add(k(3, 1, 2), &lac2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(2, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(3, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(4, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-   neighbor_ident_free(nil);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n--- BSIC matching: 6bit and 9bit are different realms, and wildcard match is weaker\n");</span><br><span style="color: hsl(0, 100%, 40%);">-    nil = neighbor_ident_init(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">- check_add(k(0, 1, BSIC_ANY), &cgi1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-     check_add(k(0, 1, 2), &lac1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(0, 1, 2), &lac2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(0, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_get(k(0, 1, 2), true);</span><br><span style="color: hsl(0, 100%, 40%);">-    neighbor_ident_free(nil);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n--- Value ranges\n");</span><br><span style="color: hsl(0, 100%, 40%);">-       nil = neighbor_ident_init(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">- check_add(k(0, 6, 1 << 6), &lac1, -ERANGE);</span><br><span style="color: hsl(0, 100%, 40%);">-   check_add(k(0, 6, BSIC_ANY - 1), &lac1, -ERANGE);</span><br><span style="color: hsl(0, 100%, 40%);">-   check_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS - 1, 1, BSIC_ANY), &cgi2, -ERANGE);</span><br><span style="color: hsl(0, 100%, 40%);">-  check_add(k(256, 1, BSIC_ANY), &cgi2, -ERANGE);</span><br><span style="color: hsl(0, 100%, 40%);">-     check_add(k(0, 0, BSIC_ANY), &cgi1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-     check_add(k(255, 65535, BSIC_ANY), &lac1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-       check_add(k(0, 0, 0), &cgi2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-    check_add(k(255, 65535, 0x3f), &lac2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   neighbor_ident_free(nil);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n--- size limits\n");</span><br><span style="color: hsl(0, 100%, 40%);">-        {</span><br><span style="color: hsl(0, 100%, 40%);">-               int i;</span><br><span style="color: hsl(0, 100%, 40%);">-          struct gsm0808_cell_id_list2 a = { .id_discr = CELL_IDENT_LAC };</span><br><span style="color: hsl(0, 100%, 40%);">-                struct gsm0808_cell_id_list2 b = {</span><br><span style="color: hsl(0, 100%, 40%);">-                      .id_discr = CELL_IDENT_LAC,</span><br><span style="color: hsl(0, 100%, 40%);">-                     .id_list = {</span><br><span style="color: hsl(0, 100%, 40%);">-                            { .lac = 423 }</span><br><span style="color: hsl(0, 100%, 40%);">-                  },</span><br><span style="color: hsl(0, 100%, 40%);">-                      .id_list_len = 1,</span><br><span style="color: hsl(0, 100%, 40%);">-               };</span><br><span style="color: hsl(0, 100%, 40%);">-              for (i = 0; i < ARRAY_SIZE(a.id_list); i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        a.id_list[a.id_list_len ++].lac = i;</span><br><span style="color: hsl(0, 100%, 40%);">-            }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-               nil = neighbor_ident_init(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-         i = neighbor_ident_add(nil, k(0, 1, 2), &a);</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("Added first cell identifier list (added %u) --> rc = %d\n", a.id_list_len, i);</span><br><span style="color: hsl(0, 100%, 40%);">-             i = neighbor_ident_add(nil, k(0, 1, 2), &b);</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("Added second cell identifier list (tried to add %u) --> rc = %d\n", b.id_list_len, i);</span><br><span style="color: hsl(0, 100%, 40%);">-             if (i != -ENOSPC)</span><br><span style="color: hsl(0, 100%, 40%);">-                       printf("ERROR: expected rc=%d\n", -ENOSPC);</span><br><span style="color: hsl(0, 100%, 40%);">-           neighbor_ident_free(nil);</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       OSMO_ASSERT(talloc_total_blocks(ctx) == 1);</span><br><span style="color: hsl(0, 100%, 40%);">-     talloc_free(ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/handover/neighbor_ident_test.err b/tests/handover/neighbor_ident_test.err</span><br><span>deleted file mode 100644</span><br><span>index e69de29..0000000</span><br><span>--- a/tests/handover/neighbor_ident_test.err</span><br><span>+++ /dev/null</span><br><span>diff --git a/tests/handover/neighbor_ident_test.ok b/tests/handover/neighbor_ident_test.ok</span><br><span>deleted file mode 100644</span><br><span>index 961a33c..0000000</span><br><span>--- a/tests/handover/neighbor_ident_test.ok</span><br><span>+++ /dev/null</span><br><span>@@ -1,186 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- testing NULL neighbor_ident_list</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi1) --> expect rc=-ENOMEM, got -12</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(0, 1, 2)) --> NULL</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_del(k(0, 1, 2)) --> nothing deleted</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- adding entries, test that no two identical entries are added</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(0, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi2) --> expect rc=2, got 2</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-        1: 005-006-7-8</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi2) --> expect rc=2, got 2</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-        1: 005-006-7-8</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_del(k(0, 1, 2)) --> entry deleted</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Cannot mix cell identifier types for one entry</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &cgi1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &lac1) --> expect rc=-EINVAL, got -22</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_del(k(0, 1, 2)) --> entry deleted</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- BTS matching: specific BTS is stronger</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, 2), &lac1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS * to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(3, 1, 2), &lac2) --> expect rc=2, got 2</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS * to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 3 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(2, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(3, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(4, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- BSIC matching: 6bit and 9bit are different realms, and wildcard match is weaker</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, BSIC_ANY), &cgi1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &lac1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 1, 2), &lac2) --> expect rc=2, got 3</span><br><span style="color: hsl(0, 100%, 40%);">-ERROR</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 1 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 0 to ARFCN 1 BSIC 2</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[3] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       2: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(0, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[3] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       2: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_get(k(0, 1, 2)) --> entry returned</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[3] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       2: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Value ranges</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 6, 1 << 6), &lac1) --> expect rc=-ERANGE, got -34</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 6, BSIC_ANY - 1), &lac1) --> expect rc=-ERANGE, got -34</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS - 1, 1, BSIC_ANY), &cgi2) --> expect rc=-ERANGE, got -34</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(256, 1, BSIC_ANY), &cgi2) --> expect rc=-ERANGE, got -34</span><br><span style="color: hsl(0, 100%, 40%);">-     (empty)</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 0, BSIC_ANY), &cgi1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 0 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(255, 65535, BSIC_ANY), &lac1) --> expect rc=1, got 1</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 0 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 255 to ARFCN 65535 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(0, 0, 0), &cgi2) --> expect rc=2, got 2</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 0 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 255 to ARFCN 65535 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  2: BTS 0 to ARFCN 0 BSIC 0</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-        1: 005-006-7-8</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-neighbor_ident_add(k(255, 65535, 0x3f), &lac2) --> expect rc=2, got 2</span><br><span style="color: hsl(0, 100%, 40%);">-  0: BTS 0 to ARFCN 0 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  1: BTS 255 to ARFCN 65535 (any BSIC)</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[1] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 123</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  2: BTS 0 to ARFCN 0 BSIC 0</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list cgi[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-        0: 001-02-3-4</span><br><span style="color: hsl(0, 100%, 40%);">-        1: 005-006-7-8</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-  3: BTS 255 to ARFCN 65535 BSIC 63</span><br><span style="color: hsl(0, 100%, 40%);">-     cell_id_list lac[2] = {</span><br><span style="color: hsl(0, 100%, 40%);">-       0: 456</span><br><span style="color: hsl(0, 100%, 40%);">-       1: 789</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- size limits</span><br><span style="color: hsl(0, 100%, 40%);">-Added first cell identifier list (added 127) --> rc = 127</span><br><span style="color: hsl(0, 100%, 40%);">-Added second cell identifier list (tried to add 1) --> rc = -28</span><br><span>diff --git a/tests/testsuite.at b/tests/testsuite.at</span><br><span>index 17153cc..e7eb76b 100644</span><br><span>--- a/tests/testsuite.at</span><br><span>+++ b/tests/testsuite.at</span><br><span>@@ -44,13 +44,6 @@</span><br><span> AT_CHECK([$abs_top_builddir/tests/nanobts_omlattr/nanobts_omlattr_test], [], [expout], [ignore])</span><br><span> AT_CLEANUP</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-AT_SETUP([neighbor_ident])</span><br><span style="color: hsl(0, 100%, 40%);">-AT_KEYWORDS([neighbor_ident])</span><br><span style="color: hsl(0, 100%, 40%);">-cat $abs_srcdir/handover/neighbor_ident_test.ok > expout</span><br><span style="color: hsl(0, 100%, 40%);">-cat $abs_srcdir/handover/neighbor_ident_test.err > experr</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CHECK([$abs_top_builddir/tests/handover/neighbor_ident_test], [], [expout], [experr])</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CLEANUP</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> AT_SETUP([handover_tests])</span><br><span> AT_KEYWORDS([handover_tests])</span><br><span> cat $abs_srcdir/handover/handover_tests.ok > expout</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/23359">change 23359</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bsc/+/23359"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I6522796bf0bbb9ab83e49168bcbff7bc70fd6c6d </div>
<div style="display:none"> Gerrit-Change-Number: 23359 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>