]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-ndisc-ra: add tests for recently added functions 29253/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 5 Sep 2023 13:12:09 +0000 (22:12 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 20 Sep 2023 19:01:24 +0000 (04:01 +0900)
src/libsystemd-network/test-ndisc-ra.c

index 6f4619943c130889164d56f0ba9b2ab4d89410d0..23abe780d61bbeeaa651c71d0f163537607ef2f1 100644 (file)
@@ -134,8 +134,54 @@ TEST(radv_prefix) {
         assert_se(sd_radv_prefix_set_prefix(p, &prefix[0].address, 129) < 0);
         assert_se(sd_radv_prefix_set_prefix(p, &prefix[0].address, 255) < 0);
 
-        p = sd_radv_prefix_unref(p);
-        assert_se(!p);
+        assert_se(!sd_radv_prefix_unref(p));
+}
+
+TEST(radv_route_prefix) {
+        sd_radv_route_prefix *p;
+
+        assert_se(sd_radv_route_prefix_new(&p) >= 0);
+
+        assert_se(sd_radv_route_prefix_set_lifetime(NULL, 1, 1) < 0);
+        assert_se(sd_radv_route_prefix_set_lifetime(p, 0, 0) >= 0);
+        assert_se(sd_radv_route_prefix_set_lifetime(p, 300 * USEC_PER_SEC, USEC_INFINITY) >= 0);
+        assert_se(sd_radv_route_prefix_set_lifetime(p, 300 * USEC_PER_SEC, USEC_PER_YEAR) >= 0);
+
+        assert_se(sd_radv_route_prefix_set_prefix(NULL, NULL, 0) < 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, NULL, 0) < 0);
+
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 64) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 0) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 1) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 2) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 3) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 125) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 128) >= 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 129) < 0);
+        assert_se(sd_radv_route_prefix_set_prefix(p, &prefix[0].address, 255) < 0);
+
+        assert_se(!sd_radv_route_prefix_unref(p));
+}
+
+TEST(radv_pref64_prefix) {
+        sd_radv_pref64_prefix *p;
+
+        assert_se(sd_radv_pref64_prefix_new(&p) >= 0);
+
+        assert_se(sd_radv_pref64_prefix_set_prefix(NULL, NULL, 0, 0) < 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, NULL, 0, 0) < 0);
+
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 32, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 40, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 48, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 56, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 64, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 96, 300 * USEC_PER_SEC) >= 0);
+
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 80, 300 * USEC_PER_SEC) < 0);
+        assert_se(sd_radv_pref64_prefix_set_prefix(p, &prefix[0].address, 80, USEC_PER_DAY) < 0);
+
+        assert_se(!sd_radv_pref64_prefix_unref(p));
 }
 
 TEST(radv) {
@@ -190,6 +236,11 @@ TEST(radv) {
         assert_se(sd_radv_set_other_information(ra, true) >= 0);
         assert_se(sd_radv_set_other_information(ra, false) >= 0);
 
+        assert_se(sd_radv_set_retransmit(NULL, 10 * USEC_PER_MSEC) < 0);
+        assert_se(sd_radv_set_retransmit(ra, 10 * USEC_PER_MSEC) >= 0);
+        assert_se(sd_radv_set_retransmit(ra, 0) >= 0);
+        assert_se(sd_radv_set_retransmit(ra, usec_add(UINT32_MAX * USEC_PER_MSEC, USEC_PER_MSEC)) < 0);
+
         assert_se(sd_radv_set_rdnss(NULL, 0, NULL, 0) < 0);
         assert_se(sd_radv_set_rdnss(ra, 0, NULL, 0) >= 0);
         assert_se(sd_radv_set_rdnss(ra, 0, NULL, 128) < 0);
@@ -203,6 +254,19 @@ TEST(radv) {
         assert_se(sd_radv_set_dnssl(ra, 0, (char **)test_dnssl) >= 0);
         assert_se(sd_radv_set_dnssl(ra, 600 * USEC_PER_SEC, (char **)test_dnssl) >= 0);
 
+        assert_se(sd_radv_set_home_agent_information(NULL, true) < 0);
+        assert_se(sd_radv_set_home_agent_information(ra, true) >= 0);
+        assert_se(sd_radv_set_home_agent_information(ra, false) >= 0);
+
+        assert_se(sd_radv_set_home_agent_preference(NULL, 10) < 0);
+        assert_se(sd_radv_set_home_agent_preference(ra, 10) >= 0);
+        assert_se(sd_radv_set_home_agent_preference(ra, 0) >= 0);
+
+        assert_se(sd_radv_set_home_agent_lifetime(NULL, 300 * USEC_PER_SEC) < 0);
+        assert_se(sd_radv_set_home_agent_lifetime(ra, 300 * USEC_PER_SEC) >= 0);
+        assert_se(sd_radv_set_home_agent_lifetime(ra, 0) >= 0);
+        assert_se(sd_radv_set_home_agent_lifetime(ra, USEC_PER_DAY) < 0);
+
         ra = sd_radv_unref(ra);
         assert_se(!ra);
 }