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