Add self-connecting regression tests

This commit is contained in:
Ruihan Li 2024-10-17 23:25:46 +08:00 committed by Tate, Hongliang Tian
parent 9707b46c7f
commit 827c15aa03
2 changed files with 36 additions and 0 deletions

View File

@ -460,3 +460,21 @@ FN_TEST(sendmsg_and_recvmsg)
TEST_RES(sendmsg(sk_accepted, &msg, 0), _ret <= sndbuf);
}
END_TEST()
FN_TEST(self_connect)
{
int sk;
char buf[5];
sk = TEST_SUCC(socket(PF_INET, SOCK_STREAM, 0));
sk_addr.sin_port = htons(8888);
TEST_SUCC(bind(sk, (struct sockaddr *)&sk_addr, sizeof(sk_addr)));
TEST_SUCC(connect(sk, (struct sockaddr *)&sk_addr, sizeof(sk_addr)));
TEST_RES(write(sk, "hello", 5), _ret == 5);
TEST_RES(read(sk, buf, 5), _ret == 5 && memcmp(buf, "hello", 5) == 0);
TEST_SUCC(close(sk));
}
END_TEST()

View File

@ -384,3 +384,21 @@ FN_TEST(sendmsg_and_recvmsg_bad_buffer)
TEST_RES(recvmsg(sk_bound, &msg, 0), _ret == strlen(good_buffer));
}
END_TEST()
FN_TEST(self_connect)
{
int sk;
char buf[5];
sk = TEST_SUCC(socket(PF_INET, SOCK_DGRAM, 0));
sk_addr.sin_port = htons(7777);
TEST_SUCC(bind(sk, (struct sockaddr *)&sk_addr, sizeof(sk_addr)));
TEST_SUCC(connect(sk, (struct sockaddr *)&sk_addr, sizeof(sk_addr)));
TEST_RES(write(sk, "hello", 5), _ret == 5);
TEST_RES(read(sk, buf, 5), _ret == 5 && memcmp(buf, "hello", 5) == 0);
TEST_SUCC(close(sk));
}
END_TEST()