zdtm: Add SOCK_SEQPACKET variants to unix socket tests

This commit simply makes copies of SOCK_STREAM unix socket tests and uses
SOCK_SEQPACKET instead.

Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
This commit is contained in:
Bui Quang Minh 2021-12-16 09:35:25 +07:00 committed by Andrei Vagin
parent 530ad9c89d
commit 0da88b6dad
26 changed files with 122 additions and 19 deletions

View file

@ -68,9 +68,13 @@ TST_NOFILE := \
utsname \
pstree \
sockets01 \
sockets01-seqpacket \
sockets02 \
sockets02-seqpacket \
sockets_spair \
sockets_spair_seqpacket \
socket_queues \
socket_queues_seqpacket \
socket-raw \
socket-tcp \
socket-tcp-listen \
@ -119,6 +123,7 @@ TST_NOFILE := \
sock_opts01 \
sock_opts02 \
sk-unix-unconn \
sk-unix-unconn-seqpacket \
ipc_namespace \
selfexe00 \
sem \
@ -187,6 +192,7 @@ TST_NOFILE := \
scm01 \
scm02 \
scm03 \
scm03-seqpacket \
scm04 \
scm05 \
scm06 \
@ -284,6 +290,7 @@ TST_FILE = \
file_attr \
deleted_unix_sock \
sk-unix-rel \
sk-unix-rel-seqpacket \
deleted_dev \
unlink_fstat00 \
unlink_fstat01 \
@ -311,7 +318,9 @@ TST_FILE = \
cow01 \
fdt_shared \
sockets00 \
sockets00-seqpacket \
sockets03 \
sockets03-seqpacket \
sockets_dgram \
file_lease00 \
file_lease01 \
@ -394,8 +403,10 @@ TST_DIR = \
mnt_enablefs \
autofs \
del_standalone_un \
del_standalone_un_seqpacket \
sk-unix-mntns \
sk-unix01 \
sk-unix01-seqpacket \
sk-unix-dgram-ghost \
unsupported_children_collision \
shared_slave_mount_children \
@ -607,6 +618,18 @@ socket-tcp6-unconn: CFLAGS += -D ZDTM_IPV6
socket-tcp4v6-last-ack: CFLAGS += -D ZDTM_TCP_LAST_ACK -D ZDTM_IPV4V6
socket-tcp4v6-closing: CFLAGS += -D ZDTM_IPV4V6
sockets00-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sockets01-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sockets02-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sockets03-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sk-unix01-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sk-unix-rel-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sockets_spair_seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
socket_queues_seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
del_standalone_un_seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
sk-unix-unconn-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
scm03-seqpacket: CFLAGS += -D ZDTM_UNIX_SEQPACKET
pty-console: CFLAGS += -D ZDTM_DEV_CONSOLE
shm-unaligned: CFLAGS += -DZDTM_SHM_UNALIGNED

View file

@ -16,11 +16,17 @@ const char *test_author = "Tycho Andersen <tycho.andersen@canonical.com>";
char *dirname;
TEST_OPTION(dirname, string, "directory name", 1);
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
static int bind_and_listen(struct sockaddr_un *addr)
{
int sk;
sk = socket(PF_UNIX, SOCK_STREAM, 0);
sk = socket(PF_UNIX, SOCK_TYPE, 0);
if (sk < 0) {
fail("socket");
return -1;

View file

@ -0,0 +1 @@
del_standalone_un.c

View file

@ -0,0 +1 @@
scm03.c

View file

@ -9,6 +9,12 @@
const char *test_doc = "Check that SCM_RIGHTS are preserved";
const char *test_author = "Pavel Emelyanov <xemul@virtuozzo.com>";
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_DGRAM
#endif
static int send_fd(int via, int fd1, int fd2)
{
struct msghdr h = {};
@ -105,7 +111,7 @@ int main(int argc, char **argv)
test_init(argc, argv);
if (socketpair(PF_UNIX, SOCK_DGRAM, 0, sk) < 0) {
if (socketpair(PF_UNIX, SOCK_TYPE, 0, sk) < 0) {
pr_perror("Can't make unix pair");
exit(1);
}

View file

@ -0,0 +1 @@
sk-unix-rel.c

View file

@ -25,6 +25,12 @@ TEST_OPTION(filename, string, "socket file name", 1);
#define TEST_MODE 0640
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
struct sockaddr_un addr;
@ -54,8 +60,8 @@ int main(int argc, char *argv[])
memcpy(addr.sun_path, filename, addrlen);
addrlen += sizeof(addr.sun_family);
sock[0] = socket(AF_UNIX, SOCK_STREAM, 0);
sock[1] = socket(AF_UNIX, SOCK_STREAM, 0);
sock[0] = socket(AF_UNIX, SOCK_TYPE, 0);
sock[1] = socket(AF_UNIX, SOCK_TYPE, 0);
if (sock[0] < 0 || sock[1] < 0) {
fail("socket");
exit(1);

View file

@ -0,0 +1 @@
sk-unix-unconn.c

View file

@ -9,6 +9,12 @@
const char *test_doc = "Check unconnected unix sockets";
const char *test_author = "Vagin Andrew <avagin@parallels.com>";
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char **argv)
{
int sk, skc;
@ -19,13 +25,13 @@ int main(int argc, char **argv)
test_init(argc, argv);
sk = socket(AF_UNIX, SOCK_STREAM, 0);
sk = socket(AF_UNIX, SOCK_TYPE, 0);
if (sk == -1) {
pr_perror("socket");
return 1;
}
skc = socket(AF_UNIX, SOCK_STREAM, 0);
skc = socket(AF_UNIX, SOCK_TYPE, 0);
if (skc == -1) {
pr_perror("socket");
return 1;

View file

@ -0,0 +1 @@
sk-unix01.c

View file

@ -0,0 +1 @@
sk-unix01.desc

View file

@ -24,6 +24,12 @@ const char *test_author = "Cyrill Gorcunov <gorcunov@openvz.org>";
char *dirname;
TEST_OPTION(dirname, string, "directory name", 1);
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
static int sk_alloc_bind(int type, struct sockaddr_un *addr)
{
int sk;
@ -256,7 +262,7 @@ int main(int argc, char **argv)
unlink(addr.sun_path);
sk_st[0] = sk_alloc_bind(SOCK_STREAM, &addr);
sk_st[0] = sk_alloc_bind(SOCK_TYPE, &addr);
if (sk_st[0] < 0)
return 1;
test_msg("sk-st: alloc/bind/listen %d\n", sk_st[0]);
@ -266,7 +272,7 @@ int main(int argc, char **argv)
return 1;
}
sk_st[1] = sk_alloc_connect(SOCK_STREAM, &addr);
sk_st[1] = sk_alloc_connect(SOCK_TYPE, &addr);
if (sk_st[1] < 0)
return 1;
test_msg("sk-st: alloc/connect %d\n", sk_st[1]);
@ -279,7 +285,7 @@ int main(int argc, char **argv)
}
test_msg("sk-st: accept %d\n", sk_st[2]);
sk_st[3] = sk_alloc_connect(SOCK_STREAM, &addr);
sk_st[3] = sk_alloc_connect(SOCK_TYPE, &addr);
if (sk_st[3] < 0)
return 1;
test_msg("sk-st: alloc/connect %d\n", sk_st[3]);

View file

@ -24,6 +24,12 @@ const char *test_author = "Stanislav Kinsbursky <skinsbursky@parallels.com>\n";
#define SK_DATA_D1 "packet dgram left"
#define SK_DATA_D2 "packet dgram right"
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int ssk_pair_d[2];
@ -32,7 +38,7 @@ int main(int argc, char *argv[])
test_init(argc, argv);
if (socketpair(AF_UNIX, SOCK_STREAM, 0, ssk_pair_s) == -1) {
if (socketpair(AF_UNIX, SOCK_TYPE, 0, ssk_pair_s) == -1) {
fail("socketpair");
exit(1);
}

View file

@ -0,0 +1 @@
socket_queues.c

View file

@ -0,0 +1 @@
sockets00.c

View file

@ -0,0 +1 @@
sockets00.desc

View file

@ -25,6 +25,12 @@ TEST_OPTION(filename, string, "socket file name", 1);
#define TEST_MODE 0640
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int ssk_icon[4];
@ -58,9 +64,9 @@ int main(int argc, char *argv[])
memcpy(addr.sun_path, path, addrlen);
addrlen += sizeof(addr.sun_family);
ssk_icon[0] = socket(AF_UNIX, SOCK_STREAM, 0);
ssk_icon[1] = socket(AF_UNIX, SOCK_STREAM, 0);
ssk_icon[2] = socket(AF_UNIX, SOCK_STREAM, 0);
ssk_icon[0] = socket(AF_UNIX, SOCK_TYPE, 0);
ssk_icon[1] = socket(AF_UNIX, SOCK_TYPE, 0);
ssk_icon[2] = socket(AF_UNIX, SOCK_TYPE, 0);
if (ssk_icon[0] < 0 || ssk_icon[1] < 0 || ssk_icon[2] < 0) {
fail("socket");
exit(1);

View file

@ -0,0 +1 @@
sockets01.c

View file

@ -30,6 +30,12 @@ const char *test_author = "Pavel Emelyanov <xemul@parallels.com>";
#define TEST_MSG "test-message"
static char buf[sizeof(TEST_MSG)];
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int spu[2], spb[2], dpu[2], dpb[2], dpd[2];
@ -40,14 +46,14 @@ int main(int argc, char *argv[])
signal(SIGPIPE, SIG_IGN);
/* spu -- stream pair, unidirectional shutdown */
if (socketpair(PF_UNIX, SOCK_STREAM, 0, spu) < 0)
if (socketpair(PF_UNIX, SOCK_TYPE, 0, spu) < 0)
fin("no stream pair 1");
if (shutdown(spu[0], SHUT_RD) < 0)
fin("no stream shutdown 1");
/* spb -- stream pair, bidirectional shutdown */
if (socketpair(PF_UNIX, SOCK_STREAM, 0, spb) < 0)
if (socketpair(PF_UNIX, SOCK_TYPE, 0, spb) < 0)
fin("no stream pair 2");
if (shutdown(spb[0], SHUT_RDWR) < 0)

View file

@ -0,0 +1 @@
sockets02.c

View file

@ -16,6 +16,12 @@
const char *test_doc = "Test semi-closed unix stream connection\n";
const char *test_author = "Pavel Emelyanov <xemul@parallels.com>\n";
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int ssk_pair[2], ret;
@ -25,7 +31,7 @@ int main(int argc, char *argv[])
data = (char)lrand48();
if (socketpair(AF_UNIX, SOCK_STREAM, 0, ssk_pair) == -1) {
if (socketpair(AF_UNIX, SOCK_TYPE, 0, ssk_pair) == -1) {
fail("socketpair");
exit(1);
}

View file

@ -0,0 +1 @@
sockets03.c

View file

@ -0,0 +1 @@
sockets03.desc

View file

@ -22,6 +22,12 @@ const char *test_author = "Andrey Ryabinin <aryabinin@virtuozzo.com>";
char *filename;
TEST_OPTION(filename, string, "socket file name", 1);
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int sk[3];
@ -52,8 +58,8 @@ int main(int argc, char *argv[])
memcpy(addr.sun_path, path, addrlen);
addrlen += sizeof(addr.sun_family);
sk[0] = socket(AF_UNIX, SOCK_STREAM, 0);
sk[1] = socket(AF_UNIX, SOCK_STREAM, 0);
sk[0] = socket(AF_UNIX, SOCK_TYPE, 0);
sk[1] = socket(AF_UNIX, SOCK_TYPE, 0);
if (sk[0] < 0 || sk[1] < 0) {
fail("socket");
exit(1);

View file

@ -18,6 +18,12 @@ const char *test_author = "Cyrill Gorcunov <gorcunov@openvz.org";
#define SK_DATA "packet"
#ifdef ZDTM_UNIX_SEQPACKET
#define SOCK_TYPE SOCK_SEQPACKET
#else
#define SOCK_TYPE SOCK_STREAM
#endif
int main(int argc, char *argv[])
{
int ssk_pair[2];
@ -25,7 +31,7 @@ int main(int argc, char *argv[])
test_init(argc, argv);
if (socketpair(AF_UNIX, SOCK_STREAM, 0, ssk_pair) == -1) {
if (socketpair(AF_UNIX, SOCK_TYPE, 0, ssk_pair) == -1) {
fail("socketpair");
exit(1);
}

View file

@ -0,0 +1 @@
sockets_spair.c