]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-dhcp6-client: add test for rapid commit 22412/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 14 Feb 2022 06:08:20 +0000 (15:08 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 14 Feb 2022 06:09:37 +0000 (15:09 +0900)
src/libsystemd-network/test-dhcp6-client.c

index 5aa7ebb977aa3105ff1544c2ae4e3a2ad44b91ed..3b25df7625b29c84b789f53b7b23e55c90c59a7a 100644 (file)
@@ -886,7 +886,21 @@ static void test_client_callback(sd_dhcp6_client *client, int event, void *userd
 
                 test_lease_managed(client);
 
-                assert_se(sd_event_exit(sd_dhcp6_client_get_event(client), 0) >= 0);
+                switch (test_client_sent_message_count) {
+                case 3:
+                        assert_se(sd_dhcp6_client_stop(client) >= 0);
+                        assert_se(sd_dhcp6_client_start(client) >= 0);
+                        assert_se(dhcp6_client_set_transaction_id(client, ((const DHCP6Message*) msg_reply)->transaction_id) >= 0);
+                        break;
+
+                case 4:
+                        assert_se(sd_event_exit(sd_dhcp6_client_get_event(client), 0) >= 0);
+                        break;
+
+                default:
+                        assert_not_reached();
+                }
+
                 break;
 
         case DHCP6_CLIENT_EVENT_TEST_ADVERTISED: {
@@ -936,6 +950,11 @@ int dhcp6_network_send_udp_socket(int s, struct in6_addr *a, const void *packet,
                 assert_se(write(test_fd[1], msg_reply, sizeof(msg_reply)) == sizeof(msg_reply));
                 break;
 
+        case 3:
+                test_client_verify_solicit(packet, len);
+                assert_se(write(test_fd[1], msg_reply, sizeof(msg_reply)) == sizeof(msg_reply));
+                break;
+
         default:
                 assert_not_reached();
         }
@@ -983,7 +1002,7 @@ static void test_dhcp6_client(void) {
 
         assert_se(sd_event_loop(e) >= 0);
 
-        assert_se(test_client_sent_message_count == 3);
+        assert_se(test_client_sent_message_count == 4);
 
         test_fd[1] = safe_close(test_fd[1]);
 }