+static int test_quic_client(void)
+{
+ return (test_quic_client_ex(INVALID_SOCKET));
+}
+
+static int test_quic_client_connect_first(void)
+{
+ struct sockaddr_in sin = {0};
+ int c_fd;
+ int rv;
+
+#ifdef SA_LEN
+ sin.sin_len = sizeof(struct sockaddr_in);
+#endif
+ sin.sin_family = AF_INET;
+ sin.sin_port = htons(DST_PORT);
+ sin.sin_addr.s_addr = htonl(DST_ADDR);
+
+ c_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ if (!TEST_int_ne(c_fd, INVALID_SOCKET))
+ goto err;
+
+ if (!TEST_int_eq(connect(c_fd, (const struct sockaddr *)&sin, sizeof(sin)), 0))
+ goto err;
+
+ if (!TEST_true(BIO_socket_nbio(c_fd, 1)))
+ goto err;
+
+ rv = test_quic_client_ex(c_fd);
+
+ close(c_fd);
+
+ return (rv);
+
+err:
+ if (c_fd != INVALID_SOCKET)
+ close(c_fd);
+ return (0);
+}
+