[MERGED] osmo-ggsn[master]: tests: Split ipv6 specific tests into a new test group

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Dec 5 14:11:09 UTC 2017


Pau Espin Pedrol has submitted this change and it was merged.

Change subject: tests: Split ipv6 specific tests into a new test group
......................................................................


tests: Split ipv6 specific tests into a new test group

This way they can be easily disabled later on when IPv6 support is made
optional.

Change-Id: I3906dbf55ccf1650083398e08ac870add0bbdcef
---
M tests/lib/Makefile.am
M tests/lib/in46a_test.c
M tests/lib/in46a_test.ok
A tests/lib/in46a_v6_test.ok
M tests/lib/ippool_test.c
M tests/lib/ippool_test.err
M tests/lib/ippool_test.ok
A tests/lib/ippool_v6_test.err
A tests/lib/ippool_v6_test.ok
M tests/testsuite.at
10 files changed, 440 insertions(+), 352 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/tests/lib/Makefile.am b/tests/lib/Makefile.am
index 95d6901..ee46468 100644
--- a/tests/lib/Makefile.am
+++ b/tests/lib/Makefile.am
@@ -1,7 +1,11 @@
 AM_CFLAGS = -Wall -I$(top_srcdir)/include $(LIBOSMOCORE_CFLAGS) -g
 
-EXTRA_DIST = ippool_test.ok ippool_test.err \
-	     in46a_test.ok
+EXTRA_DIST = ippool_test.ok \
+	     ippool_test.err \
+	     ippool_v6_test.ok \
+	     ippool_v6_test.err \
+	     in46a_test.ok \
+	     in46a_v6_test.ok
 
 noinst_PROGRAMS = ippool_test in46a_test
 
diff --git a/tests/lib/in46a_test.c b/tests/lib/in46a_test.c
index d4a5dbc..c0bb670 100644
--- a/tests/lib/in46a_test.c
+++ b/tests/lib/in46a_test.c
@@ -20,41 +20,24 @@
 	.v4.s_addr = 0x0d0c0b0a,
 };
 
-static const struct in46_addr g_ia6 = {
-	.len = 16,
-	.v6.s6_addr = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 },
-};
-
 static void test_in46a_to_af(void)
 {
-	struct in46_addr ia;
-
-	printf("Testing in46a_to_af()\n");
+	printf("Testing in46a_to_af() with IPv4 addresses\n");
 
 	OSMO_ASSERT(in46a_to_af(&g_ia4) == AF_INET);
-	OSMO_ASSERT(in46a_to_af(&g_ia6) == AF_INET6);
-
-	ia.len = 8;
-	OSMO_ASSERT(in46a_to_af(&ia) == AF_INET6);
 }
 
 static void test_in46a_to_sas(void)
 {
 	struct sockaddr_storage ss;
 	struct sockaddr_in *sin = (struct sockaddr_in *) &ss;
-	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) &ss;
 
-	printf("Testing in46a_to_sas()\n");
+	printf("Testing in46a_to_sas() with IPv4 addresses\n");
 
 	memset(&ss, 0, sizeof(ss));
 	OSMO_ASSERT(in46a_to_sas(&ss, &g_ia4) == 0);
 	OSMO_ASSERT(sin->sin_family == AF_INET);
 	OSMO_ASSERT(sin->sin_addr.s_addr == g_ia4.v4.s_addr);
-
-	memset(&ss, 0, sizeof(ss));
-	OSMO_ASSERT(in46a_to_sas(&ss, &g_ia6) == 0);
-	OSMO_ASSERT(sin6->sin6_family == AF_INET6);
-	OSMO_ASSERT(!memcmp(&sin6->sin6_addr, &g_ia6.v6, sizeof(sin6->sin6_addr)));
 }
 
 static void test_in46a_ntop(void)
@@ -63,7 +46,7 @@
 	char buf[256];
 	const char *res;
 
-	printf("Testing in46a_ntop()\n");
+	printf("Testing in46a_ntop() with IPv4 addresses\n");
 
 	res = in46a_ntop(NULL, buf, sizeof(buf));
 	OSMO_ASSERT(res && !strcmp(res, "UNDEFINED"));
@@ -78,10 +61,6 @@
 	ia.v4.s_addr = htonl(0x01020304);
 	res = in46a_ntop(&ia, buf, sizeof(buf));
 	OSMO_ASSERT(res && !strcmp(res, "1.2.3.4"));
-	printf("res = %s\n", res);
-
-	res = in46a_ntop(&g_ia6, buf, sizeof(buf));
-	OSMO_ASSERT(res && !strcmp(res, "102:304:506:708:90a:b0c:d0e:f10"));
 	printf("res = %s\n", res);
 }
 
@@ -101,20 +80,13 @@
 {
 	struct in46_addr b;
 
-	printf("Testing in46a_equal()\n");
+	printf("Testing in46a_equal() with IPv4 addresses\n");
 
 	memset(&b, 0xff, sizeof(b));
 	b.len = g_ia4.len;
 	b.v4.s_addr = g_ia4.v4.s_addr;
 	OSMO_ASSERT(in46a_equal(&g_ia4, &b));
-
-	memset(&b, 0xff, sizeof(b));
-	b.len = g_ia6.len;
-	b.v6 = g_ia6.v6;
-	OSMO_ASSERT(in46a_equal(&g_ia6, &b));
-
 }
-
 
 static int log_in46a_within_mask(const struct in46_addr *addr, const struct in46_addr *net,
 				 size_t prefixlen)
@@ -134,7 +106,7 @@
 {
 	struct in46_addr addr, mask;
 
-	printf("Testing in46a_within_mask()\n");
+	printf("Testing in46a_within_mask() with IPv4 addresses\n");
 
 	addr = g_ia4;
 	mask = g_ia4;
@@ -155,13 +127,9 @@
 
 static void test_in46a_to_eua(void)
 {
-	const struct in46_addr ia_v6_8 = {
-		.len = 8,
-		.v6.s6_addr = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 },
-	};
 	struct ul66_t eua;
 
-	printf("testing in46a_to_eua()\n");
+	printf("testing in46a_to_eua() with IPv4 addresses\n");
 
 #if 0	/* triggers assert in current implementation */
 	const struct in46_addr ia_invalid = { .len = 3, };
@@ -173,18 +141,6 @@
 	OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF);
 	OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v4);
 	OSMO_ASSERT(osmo_load32le(&eua.v[2]) == g_ia4.v4.s_addr);
-
-	/* IPv6 address */
-	OSMO_ASSERT(in46a_to_eua(&g_ia6, &eua) == 0);
-	OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF);
-	OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v6);
-	OSMO_ASSERT(!memcmp(&eua.v[2], &g_ia6.v6, 16));
-
-	/* IPv6 address with prefix / length 8 */
-	OSMO_ASSERT(in46a_to_eua(&ia_v6_8, &eua) == 0);
-	OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF);
-	OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v6);
-	OSMO_ASSERT(!memcmp(&eua.v[2], &ia_v6_8.v6, 16));
 }
 
 static void test_in46a_from_eua(void)
@@ -193,13 +149,9 @@
 	struct ul66_t eua;
 	const uint8_t v4_unspec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v4 };
 	const uint8_t v4_spec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v4, 1,2,3,4 };
-	const uint8_t v6_unspec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v6 };
-	const uint8_t v6_spec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v6,
-				    1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10 };
-
 	memset(&eua, 0, sizeof(eua));
 
-	printf("Testing in46a_from_eua()\n");
+	printf("Testing in46a_from_eua() with IPv4 addresses\n");
 
 	/* default: v4 unspec */
 	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
@@ -231,20 +183,6 @@
 	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
 	OSMO_ASSERT(ia.len == 4);
 	OSMO_ASSERT(ia.v4.s_addr == htonl(0x01020304));
-
-	/* unspecified V6 */
-	memcpy(eua.v, v6_unspec, sizeof(v6_unspec));
-	eua.l = sizeof(v6_unspec);
-	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
-	OSMO_ASSERT(ia.len == 16);
-	OSMO_ASSERT(IN6_IS_ADDR_UNSPECIFIED(&ia.v6));
-
-	/* specified V6 */
-	memcpy(eua.v, v6_spec, sizeof(v6_spec));
-	eua.l = sizeof(v6_spec);
-	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
-	OSMO_ASSERT(ia.len == 16);
-	OSMO_ASSERT(!memcmp(&ia.v6, v6_spec+2, ia.len));
 }
 
 static void test_in46a_netmasklen(void)
@@ -274,7 +212,117 @@
 	netmask.v4.s_addr = 0x00000000;
 	len = in46a_netmasklen(&netmask);
 	OSMO_ASSERT(len == 0);
+}
 
+/* IPv6 specific tests */
+
+static const struct in46_addr g_ia6 = {
+	.len = 16,
+	.v6.s6_addr = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 },
+};
+
+static void test_in46a_to_af_v6(void)
+{
+	struct in46_addr ia;
+
+	printf("Testing in46a_to_af() with IPv6 addresses\n");
+
+	OSMO_ASSERT(in46a_to_af(&g_ia6) == AF_INET6);
+
+	ia.len = 8;
+	OSMO_ASSERT(in46a_to_af(&ia) == AF_INET6);
+}
+
+static void test_in46a_to_sas_v6(void)
+{
+	struct sockaddr_storage ss;
+	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) &ss;
+
+	printf("Testing in46a_to_sas() with IPv6 addresses\n");
+
+	memset(&ss, 0, sizeof(ss));
+	OSMO_ASSERT(in46a_to_sas(&ss, &g_ia6) == 0);
+	OSMO_ASSERT(sin6->sin6_family == AF_INET6);
+	OSMO_ASSERT(!memcmp(&sin6->sin6_addr, &g_ia6.v6, sizeof(sin6->sin6_addr)));
+}
+
+static void test_in46a_ntop_v6(void)
+{
+	char buf[256];
+	const char *res;
+
+	printf("Testing in46a_ntop() with IPv6 addresses\n");
+
+	res = in46a_ntop(&g_ia6, buf, sizeof(buf));
+	OSMO_ASSERT(res && !strcmp(res, "102:304:506:708:90a:b0c:d0e:f10"));
+	printf("res = %s\n", res);
+}
+
+static void test_in46a_equal_v6(void)
+{
+	struct in46_addr b;
+
+	printf("Testing in46a_equal() with IPv6 addresses\n");
+
+	memset(&b, 0xff, sizeof(b));
+	b.len = g_ia6.len;
+	b.v6 = g_ia6.v6;
+	OSMO_ASSERT(in46a_equal(&g_ia6, &b));
+}
+
+static void test_in46a_to_eua_v6(void)
+{
+	const struct in46_addr ia_v6_8 = {
+		.len = 8,
+		.v6.s6_addr = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 },
+	};
+	struct ul66_t eua;
+
+	printf("testing in46a_to_eua() with IPv6 addresses\n");
+
+	/* IPv6 address */
+	OSMO_ASSERT(in46a_to_eua(&g_ia6, &eua) == 0);
+	OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF);
+	OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v6);
+	OSMO_ASSERT(!memcmp(&eua.v[2], &g_ia6.v6, 16));
+
+	/* IPv6 address with prefix / length 8 */
+	OSMO_ASSERT(in46a_to_eua(&ia_v6_8, &eua) == 0);
+	OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF);
+	OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v6);
+	OSMO_ASSERT(!memcmp(&eua.v[2], &ia_v6_8.v6, 16));
+}
+
+static void test_in46a_from_eua_v6(void)
+{
+	struct in46_addr ia;
+	struct ul66_t eua;
+	const uint8_t v6_unspec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v6 };
+	const uint8_t v6_spec[] = { PDP_EUA_ORG_IETF, PDP_EUA_TYPE_v6,
+				    1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10 };
+
+	memset(&eua, 0, sizeof(eua));
+
+	printf("Testing in46a_from_eua() with IPv6 addresses\n");
+
+	/* unspecified V6 */
+	memcpy(eua.v, v6_unspec, sizeof(v6_unspec));
+	eua.l = sizeof(v6_unspec);
+	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
+	OSMO_ASSERT(ia.len == 16);
+	OSMO_ASSERT(IN6_IS_ADDR_UNSPECIFIED(&ia.v6));
+
+	/* specified V6 */
+	memcpy(eua.v, v6_spec, sizeof(v6_spec));
+	eua.l = sizeof(v6_spec);
+	OSMO_ASSERT(in46a_from_eua(&eua, &ia) == 0);
+	OSMO_ASSERT(ia.len == 16);
+	OSMO_ASSERT(!memcmp(&ia.v6, v6_spec+2, ia.len));
+}
+
+static void test_in46a_netmasklen_v6(void)
+{
+	unsigned int len;
 	printf("Testing in46a_netmasklen() with IPv6 addresses\n");
 	const struct in46_addr netmaskA = {
 		.len = 16,
@@ -313,14 +361,24 @@
 
 	srand(time(NULL));
 
-	test_in46a_to_af();
-	test_in46a_to_sas();
-	test_in46a_ntop();
-	test_in46p_ntoa();
-	test_in46a_equal();
-	test_in46a_within_mask();
-	test_in46a_to_eua();
-	test_in46a_from_eua();
-	test_in46a_netmasklen();
+	if (argc < 2 || strcmp(argv[1], "-v6")) {
+		test_in46a_to_af();
+		test_in46a_to_sas();
+		test_in46a_ntop();
+		test_in46p_ntoa();
+		test_in46a_equal();
+		test_in46a_within_mask();
+		test_in46a_to_eua();
+		test_in46a_from_eua();
+		test_in46a_netmasklen();
+	} else {
+		test_in46a_to_af_v6();
+		test_in46a_to_sas_v6();
+		test_in46a_ntop_v6();
+		test_in46a_equal_v6();
+		test_in46a_to_eua_v6();
+		test_in46a_from_eua_v6();
+		test_in46a_netmasklen_v6();
+	}
 	return 0;
 }
diff --git a/tests/lib/in46a_test.ok b/tests/lib/in46a_test.ok
index 9a0ff7a..b497ad1 100644
--- a/tests/lib/in46a_test.ok
+++ b/tests/lib/in46a_test.ok
@@ -1,19 +1,17 @@
-Testing in46a_to_af()
-Testing in46a_to_sas()
-Testing in46a_ntop()
+Testing in46a_to_af() with IPv4 addresses
+Testing in46a_to_sas() with IPv4 addresses
+Testing in46a_ntop() with IPv4 addresses
 res = UNDEFINED
 res = UNDEFINED
 res = 1.2.3.4
-res = 102:304:506:708:90a:b0c:d0e:f10
 in46p_ntoa() returns 16.32.48.0/24
-Testing in46a_equal()
-Testing in46a_within_mask()
+Testing in46a_equal() with IPv4 addresses
+Testing in46a_within_mask() with IPv4 addresses
 in46a_within_mask(10.11.12.13, 10.11.12.13, 32) = 1
 in46a_within_mask(10.11.12.13, 10.11.12.12, 30) = 1
 in46a_within_mask(10.11.12.13, 10.8.0.0, 13) = 1
 in46a_within_mask(10.11.12.14, 10.11.12.13, 32) = 0
 in46a_within_mask(10.11.12.14, 10.11.12.12, 30) = 1
-testing in46a_to_eua()
-Testing in46a_from_eua()
+testing in46a_to_eua() with IPv4 addresses
+Testing in46a_from_eua() with IPv4 addresses
 Testing in46a_netmasklen() with IPv4 addresses
-Testing in46a_netmasklen() with IPv6 addresses
diff --git a/tests/lib/in46a_v6_test.ok b/tests/lib/in46a_v6_test.ok
new file mode 100644
index 0000000..d092591
--- /dev/null
+++ b/tests/lib/in46a_v6_test.ok
@@ -0,0 +1,8 @@
+Testing in46a_to_af() with IPv6 addresses
+Testing in46a_to_sas() with IPv6 addresses
+Testing in46a_ntop() with IPv6 addresses
+res = 102:304:506:708:90a:b0c:d0e:f10
+Testing in46a_equal() with IPv6 addresses
+testing in46a_to_eua() with IPv6 addresses
+Testing in46a_from_eua() with IPv6 addresses
+Testing in46a_netmasklen() with IPv6 addresses
diff --git a/tests/lib/ippool_test.c b/tests/lib/ippool_test.c
index 5b3227c..8d3f46c 100644
--- a/tests/lib/ippool_test.c
+++ b/tests/lib/ippool_test.c
@@ -113,12 +113,15 @@
 	/* 65534 addresses [0.1..255.254] */
 	test_pool_size("192.168.0.0/16", IPPOOL_NONETWORK | IPPOOL_NOBROADCAST, NULL, 0, 65534);
 
-	/* 256 prefixes of /64 each */
-	test_pool_size("2001:DB8::/56", 0, NULL, 0, 256);
-
 	/* 253 addresses [1..254] & exclude 192.168.23.1/24 */
 	char *blacklist[] = {"176.16.222.10/24", "192.168.23.1/24", "192.168.38.2/24"};
 	test_pool_size("192.168.23.0/24", IPPOOL_NONETWORK | IPPOOL_NOBROADCAST, blacklist, 3, 253);
+}
+
+static void test_pool_sizes_v6(void)
+{
+	/* 256 prefixes of /64 each */
+	test_pool_size("2001:DB8::/56", 0, NULL, 0, 256);
 }
 
 int main(int argc, char **argv)
@@ -129,6 +132,10 @@
 
 	srand(time(NULL));
 
-	test_pool_sizes();
+	if (argc < 2 || strcmp(argv[1], "-v6")) {
+		test_pool_sizes();
+	} else {
+		test_pool_sizes_v6();
+	}
 	return 0;
 }
diff --git a/tests/lib/ippool_test.err b/tests/lib/ippool_test.err
index b11c12a..7dc5371 100644
--- a/tests/lib/ippool_test.err
+++ b/tests/lib/ippool_test.err
@@ -8,5 +8,3 @@
 No more IP addresses available
 No more IP addresses available
 No more IP addresses available
-No more IP addresses available
-No more IP addresses available
diff --git a/tests/lib/ippool_test.ok b/tests/lib/ippool_test.ok
index 263494e..d247c74 100644
--- a/tests/lib/ippool_test.ok
+++ b/tests/lib/ippool_test.ok
@@ -66301,263 +66301,6 @@
 allocated address 192.168.255.252
 allocated address 192.168.255.253
 allocated address 192.168.255.254
-testing pool for prefix 2001:DB8::/56, flags=0x0, blacklist_size=0, expected_size=256
-allocated address 2001:db8::
-allocated address 2001:db8:0:1::
-allocated address 2001:db8:0:2::
-allocated address 2001:db8:0:3::
-allocated address 2001:db8:0:4::
-allocated address 2001:db8:0:5::
-allocated address 2001:db8:0:6::
-allocated address 2001:db8:0:7::
-allocated address 2001:db8:0:8::
-allocated address 2001:db8:0:9::
-allocated address 2001:db8:0:a::
-allocated address 2001:db8:0:b::
-allocated address 2001:db8:0:c::
-allocated address 2001:db8:0:d::
-allocated address 2001:db8:0:e::
-allocated address 2001:db8:0:f::
-allocated address 2001:db8:0:10::
-allocated address 2001:db8:0:11::
-allocated address 2001:db8:0:12::
-allocated address 2001:db8:0:13::
-allocated address 2001:db8:0:14::
-allocated address 2001:db8:0:15::
-allocated address 2001:db8:0:16::
-allocated address 2001:db8:0:17::
-allocated address 2001:db8:0:18::
-allocated address 2001:db8:0:19::
-allocated address 2001:db8:0:1a::
-allocated address 2001:db8:0:1b::
-allocated address 2001:db8:0:1c::
-allocated address 2001:db8:0:1d::
-allocated address 2001:db8:0:1e::
-allocated address 2001:db8:0:1f::
-allocated address 2001:db8:0:20::
-allocated address 2001:db8:0:21::
-allocated address 2001:db8:0:22::
-allocated address 2001:db8:0:23::
-allocated address 2001:db8:0:24::
-allocated address 2001:db8:0:25::
-allocated address 2001:db8:0:26::
-allocated address 2001:db8:0:27::
-allocated address 2001:db8:0:28::
-allocated address 2001:db8:0:29::
-allocated address 2001:db8:0:2a::
-allocated address 2001:db8:0:2b::
-allocated address 2001:db8:0:2c::
-allocated address 2001:db8:0:2d::
-allocated address 2001:db8:0:2e::
-allocated address 2001:db8:0:2f::
-allocated address 2001:db8:0:30::
-allocated address 2001:db8:0:31::
-allocated address 2001:db8:0:32::
-allocated address 2001:db8:0:33::
-allocated address 2001:db8:0:34::
-allocated address 2001:db8:0:35::
-allocated address 2001:db8:0:36::
-allocated address 2001:db8:0:37::
-allocated address 2001:db8:0:38::
-allocated address 2001:db8:0:39::
-allocated address 2001:db8:0:3a::
-allocated address 2001:db8:0:3b::
-allocated address 2001:db8:0:3c::
-allocated address 2001:db8:0:3d::
-allocated address 2001:db8:0:3e::
-allocated address 2001:db8:0:3f::
-allocated address 2001:db8:0:40::
-allocated address 2001:db8:0:41::
-allocated address 2001:db8:0:42::
-allocated address 2001:db8:0:43::
-allocated address 2001:db8:0:44::
-allocated address 2001:db8:0:45::
-allocated address 2001:db8:0:46::
-allocated address 2001:db8:0:47::
-allocated address 2001:db8:0:48::
-allocated address 2001:db8:0:49::
-allocated address 2001:db8:0:4a::
-allocated address 2001:db8:0:4b::
-allocated address 2001:db8:0:4c::
-allocated address 2001:db8:0:4d::
-allocated address 2001:db8:0:4e::
-allocated address 2001:db8:0:4f::
-allocated address 2001:db8:0:50::
-allocated address 2001:db8:0:51::
-allocated address 2001:db8:0:52::
-allocated address 2001:db8:0:53::
-allocated address 2001:db8:0:54::
-allocated address 2001:db8:0:55::
-allocated address 2001:db8:0:56::
-allocated address 2001:db8:0:57::
-allocated address 2001:db8:0:58::
-allocated address 2001:db8:0:59::
-allocated address 2001:db8:0:5a::
-allocated address 2001:db8:0:5b::
-allocated address 2001:db8:0:5c::
-allocated address 2001:db8:0:5d::
-allocated address 2001:db8:0:5e::
-allocated address 2001:db8:0:5f::
-allocated address 2001:db8:0:60::
-allocated address 2001:db8:0:61::
-allocated address 2001:db8:0:62::
-allocated address 2001:db8:0:63::
-allocated address 2001:db8:0:64::
-allocated address 2001:db8:0:65::
-allocated address 2001:db8:0:66::
-allocated address 2001:db8:0:67::
-allocated address 2001:db8:0:68::
-allocated address 2001:db8:0:69::
-allocated address 2001:db8:0:6a::
-allocated address 2001:db8:0:6b::
-allocated address 2001:db8:0:6c::
-allocated address 2001:db8:0:6d::
-allocated address 2001:db8:0:6e::
-allocated address 2001:db8:0:6f::
-allocated address 2001:db8:0:70::
-allocated address 2001:db8:0:71::
-allocated address 2001:db8:0:72::
-allocated address 2001:db8:0:73::
-allocated address 2001:db8:0:74::
-allocated address 2001:db8:0:75::
-allocated address 2001:db8:0:76::
-allocated address 2001:db8:0:77::
-allocated address 2001:db8:0:78::
-allocated address 2001:db8:0:79::
-allocated address 2001:db8:0:7a::
-allocated address 2001:db8:0:7b::
-allocated address 2001:db8:0:7c::
-allocated address 2001:db8:0:7d::
-allocated address 2001:db8:0:7e::
-allocated address 2001:db8:0:7f::
-allocated address 2001:db8:0:80::
-allocated address 2001:db8:0:81::
-allocated address 2001:db8:0:82::
-allocated address 2001:db8:0:83::
-allocated address 2001:db8:0:84::
-allocated address 2001:db8:0:85::
-allocated address 2001:db8:0:86::
-allocated address 2001:db8:0:87::
-allocated address 2001:db8:0:88::
-allocated address 2001:db8:0:89::
-allocated address 2001:db8:0:8a::
-allocated address 2001:db8:0:8b::
-allocated address 2001:db8:0:8c::
-allocated address 2001:db8:0:8d::
-allocated address 2001:db8:0:8e::
-allocated address 2001:db8:0:8f::
-allocated address 2001:db8:0:90::
-allocated address 2001:db8:0:91::
-allocated address 2001:db8:0:92::
-allocated address 2001:db8:0:93::
-allocated address 2001:db8:0:94::
-allocated address 2001:db8:0:95::
-allocated address 2001:db8:0:96::
-allocated address 2001:db8:0:97::
-allocated address 2001:db8:0:98::
-allocated address 2001:db8:0:99::
-allocated address 2001:db8:0:9a::
-allocated address 2001:db8:0:9b::
-allocated address 2001:db8:0:9c::
-allocated address 2001:db8:0:9d::
-allocated address 2001:db8:0:9e::
-allocated address 2001:db8:0:9f::
-allocated address 2001:db8:0:a0::
-allocated address 2001:db8:0:a1::
-allocated address 2001:db8:0:a2::
-allocated address 2001:db8:0:a3::
-allocated address 2001:db8:0:a4::
-allocated address 2001:db8:0:a5::
-allocated address 2001:db8:0:a6::
-allocated address 2001:db8:0:a7::
-allocated address 2001:db8:0:a8::
-allocated address 2001:db8:0:a9::
-allocated address 2001:db8:0:aa::
-allocated address 2001:db8:0:ab::
-allocated address 2001:db8:0:ac::
-allocated address 2001:db8:0:ad::
-allocated address 2001:db8:0:ae::
-allocated address 2001:db8:0:af::
-allocated address 2001:db8:0:b0::
-allocated address 2001:db8:0:b1::
-allocated address 2001:db8:0:b2::
-allocated address 2001:db8:0:b3::
-allocated address 2001:db8:0:b4::
-allocated address 2001:db8:0:b5::
-allocated address 2001:db8:0:b6::
-allocated address 2001:db8:0:b7::
-allocated address 2001:db8:0:b8::
-allocated address 2001:db8:0:b9::
-allocated address 2001:db8:0:ba::
-allocated address 2001:db8:0:bb::
-allocated address 2001:db8:0:bc::
-allocated address 2001:db8:0:bd::
-allocated address 2001:db8:0:be::
-allocated address 2001:db8:0:bf::
-allocated address 2001:db8:0:c0::
-allocated address 2001:db8:0:c1::
-allocated address 2001:db8:0:c2::
-allocated address 2001:db8:0:c3::
-allocated address 2001:db8:0:c4::
-allocated address 2001:db8:0:c5::
-allocated address 2001:db8:0:c6::
-allocated address 2001:db8:0:c7::
-allocated address 2001:db8:0:c8::
-allocated address 2001:db8:0:c9::
-allocated address 2001:db8:0:ca::
-allocated address 2001:db8:0:cb::
-allocated address 2001:db8:0:cc::
-allocated address 2001:db8:0:cd::
-allocated address 2001:db8:0:ce::
-allocated address 2001:db8:0:cf::
-allocated address 2001:db8:0:d0::
-allocated address 2001:db8:0:d1::
-allocated address 2001:db8:0:d2::
-allocated address 2001:db8:0:d3::
-allocated address 2001:db8:0:d4::
-allocated address 2001:db8:0:d5::
-allocated address 2001:db8:0:d6::
-allocated address 2001:db8:0:d7::
-allocated address 2001:db8:0:d8::
-allocated address 2001:db8:0:d9::
-allocated address 2001:db8:0:da::
-allocated address 2001:db8:0:db::
-allocated address 2001:db8:0:dc::
-allocated address 2001:db8:0:dd::
-allocated address 2001:db8:0:de::
-allocated address 2001:db8:0:df::
-allocated address 2001:db8:0:e0::
-allocated address 2001:db8:0:e1::
-allocated address 2001:db8:0:e2::
-allocated address 2001:db8:0:e3::
-allocated address 2001:db8:0:e4::
-allocated address 2001:db8:0:e5::
-allocated address 2001:db8:0:e6::
-allocated address 2001:db8:0:e7::
-allocated address 2001:db8:0:e8::
-allocated address 2001:db8:0:e9::
-allocated address 2001:db8:0:ea::
-allocated address 2001:db8:0:eb::
-allocated address 2001:db8:0:ec::
-allocated address 2001:db8:0:ed::
-allocated address 2001:db8:0:ee::
-allocated address 2001:db8:0:ef::
-allocated address 2001:db8:0:f0::
-allocated address 2001:db8:0:f1::
-allocated address 2001:db8:0:f2::
-allocated address 2001:db8:0:f3::
-allocated address 2001:db8:0:f4::
-allocated address 2001:db8:0:f5::
-allocated address 2001:db8:0:f6::
-allocated address 2001:db8:0:f7::
-allocated address 2001:db8:0:f8::
-allocated address 2001:db8:0:f9::
-allocated address 2001:db8:0:fa::
-allocated address 2001:db8:0:fb::
-allocated address 2001:db8:0:fc::
-allocated address 2001:db8:0:fd::
-allocated address 2001:db8:0:fe::
-allocated address 2001:db8:0:ff::
 testing pool for prefix 192.168.23.0/24, flags=0x3, blacklist_size=3, expected_size=253
 allocated address 192.168.23.2
 allocated address 192.168.23.3
diff --git a/tests/lib/ippool_v6_test.err b/tests/lib/ippool_v6_test.err
new file mode 100644
index 0000000..f0edefe
--- /dev/null
+++ b/tests/lib/ippool_v6_test.err
@@ -0,0 +1,2 @@
+No more IP addresses available
+No more IP addresses available
diff --git a/tests/lib/ippool_v6_test.ok b/tests/lib/ippool_v6_test.ok
new file mode 100644
index 0000000..19ea4d1
--- /dev/null
+++ b/tests/lib/ippool_v6_test.ok
@@ -0,0 +1,257 @@
+testing pool for prefix 2001:DB8::/56, flags=0x0, blacklist_size=0, expected_size=256
+allocated address 2001:db8::
+allocated address 2001:db8:0:1::
+allocated address 2001:db8:0:2::
+allocated address 2001:db8:0:3::
+allocated address 2001:db8:0:4::
+allocated address 2001:db8:0:5::
+allocated address 2001:db8:0:6::
+allocated address 2001:db8:0:7::
+allocated address 2001:db8:0:8::
+allocated address 2001:db8:0:9::
+allocated address 2001:db8:0:a::
+allocated address 2001:db8:0:b::
+allocated address 2001:db8:0:c::
+allocated address 2001:db8:0:d::
+allocated address 2001:db8:0:e::
+allocated address 2001:db8:0:f::
+allocated address 2001:db8:0:10::
+allocated address 2001:db8:0:11::
+allocated address 2001:db8:0:12::
+allocated address 2001:db8:0:13::
+allocated address 2001:db8:0:14::
+allocated address 2001:db8:0:15::
+allocated address 2001:db8:0:16::
+allocated address 2001:db8:0:17::
+allocated address 2001:db8:0:18::
+allocated address 2001:db8:0:19::
+allocated address 2001:db8:0:1a::
+allocated address 2001:db8:0:1b::
+allocated address 2001:db8:0:1c::
+allocated address 2001:db8:0:1d::
+allocated address 2001:db8:0:1e::
+allocated address 2001:db8:0:1f::
+allocated address 2001:db8:0:20::
+allocated address 2001:db8:0:21::
+allocated address 2001:db8:0:22::
+allocated address 2001:db8:0:23::
+allocated address 2001:db8:0:24::
+allocated address 2001:db8:0:25::
+allocated address 2001:db8:0:26::
+allocated address 2001:db8:0:27::
+allocated address 2001:db8:0:28::
+allocated address 2001:db8:0:29::
+allocated address 2001:db8:0:2a::
+allocated address 2001:db8:0:2b::
+allocated address 2001:db8:0:2c::
+allocated address 2001:db8:0:2d::
+allocated address 2001:db8:0:2e::
+allocated address 2001:db8:0:2f::
+allocated address 2001:db8:0:30::
+allocated address 2001:db8:0:31::
+allocated address 2001:db8:0:32::
+allocated address 2001:db8:0:33::
+allocated address 2001:db8:0:34::
+allocated address 2001:db8:0:35::
+allocated address 2001:db8:0:36::
+allocated address 2001:db8:0:37::
+allocated address 2001:db8:0:38::
+allocated address 2001:db8:0:39::
+allocated address 2001:db8:0:3a::
+allocated address 2001:db8:0:3b::
+allocated address 2001:db8:0:3c::
+allocated address 2001:db8:0:3d::
+allocated address 2001:db8:0:3e::
+allocated address 2001:db8:0:3f::
+allocated address 2001:db8:0:40::
+allocated address 2001:db8:0:41::
+allocated address 2001:db8:0:42::
+allocated address 2001:db8:0:43::
+allocated address 2001:db8:0:44::
+allocated address 2001:db8:0:45::
+allocated address 2001:db8:0:46::
+allocated address 2001:db8:0:47::
+allocated address 2001:db8:0:48::
+allocated address 2001:db8:0:49::
+allocated address 2001:db8:0:4a::
+allocated address 2001:db8:0:4b::
+allocated address 2001:db8:0:4c::
+allocated address 2001:db8:0:4d::
+allocated address 2001:db8:0:4e::
+allocated address 2001:db8:0:4f::
+allocated address 2001:db8:0:50::
+allocated address 2001:db8:0:51::
+allocated address 2001:db8:0:52::
+allocated address 2001:db8:0:53::
+allocated address 2001:db8:0:54::
+allocated address 2001:db8:0:55::
+allocated address 2001:db8:0:56::
+allocated address 2001:db8:0:57::
+allocated address 2001:db8:0:58::
+allocated address 2001:db8:0:59::
+allocated address 2001:db8:0:5a::
+allocated address 2001:db8:0:5b::
+allocated address 2001:db8:0:5c::
+allocated address 2001:db8:0:5d::
+allocated address 2001:db8:0:5e::
+allocated address 2001:db8:0:5f::
+allocated address 2001:db8:0:60::
+allocated address 2001:db8:0:61::
+allocated address 2001:db8:0:62::
+allocated address 2001:db8:0:63::
+allocated address 2001:db8:0:64::
+allocated address 2001:db8:0:65::
+allocated address 2001:db8:0:66::
+allocated address 2001:db8:0:67::
+allocated address 2001:db8:0:68::
+allocated address 2001:db8:0:69::
+allocated address 2001:db8:0:6a::
+allocated address 2001:db8:0:6b::
+allocated address 2001:db8:0:6c::
+allocated address 2001:db8:0:6d::
+allocated address 2001:db8:0:6e::
+allocated address 2001:db8:0:6f::
+allocated address 2001:db8:0:70::
+allocated address 2001:db8:0:71::
+allocated address 2001:db8:0:72::
+allocated address 2001:db8:0:73::
+allocated address 2001:db8:0:74::
+allocated address 2001:db8:0:75::
+allocated address 2001:db8:0:76::
+allocated address 2001:db8:0:77::
+allocated address 2001:db8:0:78::
+allocated address 2001:db8:0:79::
+allocated address 2001:db8:0:7a::
+allocated address 2001:db8:0:7b::
+allocated address 2001:db8:0:7c::
+allocated address 2001:db8:0:7d::
+allocated address 2001:db8:0:7e::
+allocated address 2001:db8:0:7f::
+allocated address 2001:db8:0:80::
+allocated address 2001:db8:0:81::
+allocated address 2001:db8:0:82::
+allocated address 2001:db8:0:83::
+allocated address 2001:db8:0:84::
+allocated address 2001:db8:0:85::
+allocated address 2001:db8:0:86::
+allocated address 2001:db8:0:87::
+allocated address 2001:db8:0:88::
+allocated address 2001:db8:0:89::
+allocated address 2001:db8:0:8a::
+allocated address 2001:db8:0:8b::
+allocated address 2001:db8:0:8c::
+allocated address 2001:db8:0:8d::
+allocated address 2001:db8:0:8e::
+allocated address 2001:db8:0:8f::
+allocated address 2001:db8:0:90::
+allocated address 2001:db8:0:91::
+allocated address 2001:db8:0:92::
+allocated address 2001:db8:0:93::
+allocated address 2001:db8:0:94::
+allocated address 2001:db8:0:95::
+allocated address 2001:db8:0:96::
+allocated address 2001:db8:0:97::
+allocated address 2001:db8:0:98::
+allocated address 2001:db8:0:99::
+allocated address 2001:db8:0:9a::
+allocated address 2001:db8:0:9b::
+allocated address 2001:db8:0:9c::
+allocated address 2001:db8:0:9d::
+allocated address 2001:db8:0:9e::
+allocated address 2001:db8:0:9f::
+allocated address 2001:db8:0:a0::
+allocated address 2001:db8:0:a1::
+allocated address 2001:db8:0:a2::
+allocated address 2001:db8:0:a3::
+allocated address 2001:db8:0:a4::
+allocated address 2001:db8:0:a5::
+allocated address 2001:db8:0:a6::
+allocated address 2001:db8:0:a7::
+allocated address 2001:db8:0:a8::
+allocated address 2001:db8:0:a9::
+allocated address 2001:db8:0:aa::
+allocated address 2001:db8:0:ab::
+allocated address 2001:db8:0:ac::
+allocated address 2001:db8:0:ad::
+allocated address 2001:db8:0:ae::
+allocated address 2001:db8:0:af::
+allocated address 2001:db8:0:b0::
+allocated address 2001:db8:0:b1::
+allocated address 2001:db8:0:b2::
+allocated address 2001:db8:0:b3::
+allocated address 2001:db8:0:b4::
+allocated address 2001:db8:0:b5::
+allocated address 2001:db8:0:b6::
+allocated address 2001:db8:0:b7::
+allocated address 2001:db8:0:b8::
+allocated address 2001:db8:0:b9::
+allocated address 2001:db8:0:ba::
+allocated address 2001:db8:0:bb::
+allocated address 2001:db8:0:bc::
+allocated address 2001:db8:0:bd::
+allocated address 2001:db8:0:be::
+allocated address 2001:db8:0:bf::
+allocated address 2001:db8:0:c0::
+allocated address 2001:db8:0:c1::
+allocated address 2001:db8:0:c2::
+allocated address 2001:db8:0:c3::
+allocated address 2001:db8:0:c4::
+allocated address 2001:db8:0:c5::
+allocated address 2001:db8:0:c6::
+allocated address 2001:db8:0:c7::
+allocated address 2001:db8:0:c8::
+allocated address 2001:db8:0:c9::
+allocated address 2001:db8:0:ca::
+allocated address 2001:db8:0:cb::
+allocated address 2001:db8:0:cc::
+allocated address 2001:db8:0:cd::
+allocated address 2001:db8:0:ce::
+allocated address 2001:db8:0:cf::
+allocated address 2001:db8:0:d0::
+allocated address 2001:db8:0:d1::
+allocated address 2001:db8:0:d2::
+allocated address 2001:db8:0:d3::
+allocated address 2001:db8:0:d4::
+allocated address 2001:db8:0:d5::
+allocated address 2001:db8:0:d6::
+allocated address 2001:db8:0:d7::
+allocated address 2001:db8:0:d8::
+allocated address 2001:db8:0:d9::
+allocated address 2001:db8:0:da::
+allocated address 2001:db8:0:db::
+allocated address 2001:db8:0:dc::
+allocated address 2001:db8:0:dd::
+allocated address 2001:db8:0:de::
+allocated address 2001:db8:0:df::
+allocated address 2001:db8:0:e0::
+allocated address 2001:db8:0:e1::
+allocated address 2001:db8:0:e2::
+allocated address 2001:db8:0:e3::
+allocated address 2001:db8:0:e4::
+allocated address 2001:db8:0:e5::
+allocated address 2001:db8:0:e6::
+allocated address 2001:db8:0:e7::
+allocated address 2001:db8:0:e8::
+allocated address 2001:db8:0:e9::
+allocated address 2001:db8:0:ea::
+allocated address 2001:db8:0:eb::
+allocated address 2001:db8:0:ec::
+allocated address 2001:db8:0:ed::
+allocated address 2001:db8:0:ee::
+allocated address 2001:db8:0:ef::
+allocated address 2001:db8:0:f0::
+allocated address 2001:db8:0:f1::
+allocated address 2001:db8:0:f2::
+allocated address 2001:db8:0:f3::
+allocated address 2001:db8:0:f4::
+allocated address 2001:db8:0:f5::
+allocated address 2001:db8:0:f6::
+allocated address 2001:db8:0:f7::
+allocated address 2001:db8:0:f8::
+allocated address 2001:db8:0:f9::
+allocated address 2001:db8:0:fa::
+allocated address 2001:db8:0:fb::
+allocated address 2001:db8:0:fc::
+allocated address 2001:db8:0:fd::
+allocated address 2001:db8:0:fe::
+allocated address 2001:db8:0:ff::
diff --git a/tests/testsuite.at b/tests/testsuite.at
index f365f95..fa94db3 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -8,12 +8,25 @@
 AT_CHECK([$abs_top_builddir/tests/lib/ippool_test], [], [expout], [experr])
 AT_CLEANUP
 
+AT_SETUP([ippool_v6])
+AT_KEYWORDS([ippool_v6])
+cat $abs_srcdir/lib/ippool_v6_test.ok > expout
+cat $abs_srcdir/lib/ippool_v6_test.err > experr
+AT_CHECK([$abs_top_builddir/tests/lib/ippool_test -v6], [], [expout], [experr])
+AT_CLEANUP
+
 AT_SETUP([in46a])
 AT_KEYWORDS([in46a])
 cat $abs_srcdir/lib/in46a_test.ok > expout
 AT_CHECK([$abs_top_builddir/tests/lib/in46a_test], [], [expout], [])
 AT_CLEANUP
 
+AT_SETUP([in46a_v6])
+AT_KEYWORDS([in46a_v6])
+cat $abs_srcdir/lib/in46a_v6_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/lib/in46a_test -v6], [], [expout], [])
+AT_CLEANUP
+
 AT_SETUP([gtpie])
 AT_KEYWORDS([gtpie])
 cat $abs_srcdir/gtp/gtpie_test.ok > expout

-- 
To view, visit https://gerrit.osmocom.org/5162
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3906dbf55ccf1650083398e08ac870add0bbdcef
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list