git: 356deeb2e7f6 - main - kyua/qemu: When running in qemu, don't teset sendfile

From: Warner Losh <imp_at_FreeBSD.org>
Date: Wed, 02 Feb 2022 21:28:50 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=356deeb2e7f64c5b3fff8e28f4b4fcc8b9cbf7bc

commit 356deeb2e7f64c5b3fff8e28f4b4fcc8b9cbf7bc
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2022-02-02 21:27:51 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2022-02-02 21:27:51 +0000

    kyua/qemu: When running in qemu, don't teset sendfile
    
    qemu's bsd-user doesn't implement sendfile, so just skip those tests
    that use it.
    
    Sponsored by:           Netflix
---
 lib/libc/tests/sys/sendfile_test.c | 54 ++++++++++++++++++++++++++++++++++++++
 tests/sys/kern/sendfile_test.sh    | 12 +++++++++
 2 files changed, 66 insertions(+)

diff --git a/lib/libc/tests/sys/sendfile_test.c b/lib/libc/tests/sys/sendfile_test.c
index c12e4f7c1de3..1700691495c4 100644
--- a/lib/libc/tests/sys/sendfile_test.c
+++ b/lib/libc/tests/sys/sendfile_test.c
@@ -380,6 +380,9 @@ ATF_TC_HEAD(fd_positive_file_v4, tc)
 ATF_TC_BODY(fd_positive_file_v4, tc)
 {
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	fd_positive_file_test(AF_INET);
 }
 
@@ -393,6 +396,9 @@ ATF_TC_HEAD(fd_positive_file_v6, tc)
 ATF_TC_BODY(fd_positive_file_v6, tc)
 {
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	fd_positive_file_test(AF_INET6);
 }
 
@@ -458,6 +464,8 @@ ATF_TC_HEAD(fd_positive_shm_v4, tc)
 }
 ATF_TC_BODY(fd_positive_shm_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	fd_positive_shm_test(AF_INET);
 }
@@ -471,6 +479,8 @@ ATF_TC_HEAD(fd_positive_shm_v6, tc)
 }
 ATF_TC_BODY(fd_positive_shm_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	fd_positive_shm_test(AF_INET6);
 }
@@ -502,6 +512,8 @@ ATF_TC_HEAD(fd_negative_bad_fd_v4, tc)
 }
 ATF_TC_BODY(fd_negative_bad_fd_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	fd_negative_bad_fd_test(AF_INET);
 }
@@ -515,6 +527,8 @@ ATF_TC_HEAD(fd_negative_bad_fd_v6, tc)
 }
 ATF_TC_BODY(fd_negative_bad_fd_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	fd_negative_bad_fd_test(AF_INET6);
 }
@@ -618,6 +632,8 @@ ATF_TC_HEAD(flags_v4, tc)
 }
 ATF_TC_BODY(flags_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	flags_test(AF_INET);
 }
@@ -630,6 +646,8 @@ ATF_TC_HEAD(flags_v6, tc)
 }
 ATF_TC_BODY(flags_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	flags_test(AF_INET6);
 }
@@ -746,6 +764,8 @@ ATF_TC_HEAD(hdtr_positive_v4, tc)
 }
 ATF_TC_BODY(hdtr_positive_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	hdtr_positive_test(AF_INET);
 }
@@ -759,6 +779,8 @@ ATF_TC_HEAD(hdtr_positive_v6, tc)
 }
 ATF_TC_BODY(hdtr_positive_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	hdtr_positive_test(AF_INET);
 }
@@ -810,6 +832,8 @@ ATF_TC_HEAD(hdtr_negative_bad_pointers_v4, tc)
 }
 ATF_TC_BODY(hdtr_negative_bad_pointers_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	hdtr_negative_bad_pointers_test(AF_INET);
 }
@@ -823,6 +847,8 @@ ATF_TC_HEAD(hdtr_negative_bad_pointers_v6, tc)
 }
 ATF_TC_BODY(hdtr_negative_bad_pointers_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	hdtr_negative_bad_pointers_test(AF_INET6);
 }
@@ -856,6 +882,8 @@ ATF_TC_HEAD(offset_negative_value_less_than_zero_v4, tc)
 }
 ATF_TC_BODY(offset_negative_value_less_than_zero_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	offset_negative_value_less_than_zero_test(AF_INET);
 }
@@ -869,6 +897,8 @@ ATF_TC_HEAD(offset_negative_value_less_than_zero_v6, tc)
 }
 ATF_TC_BODY(offset_negative_value_less_than_zero_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	offset_negative_value_less_than_zero_test(AF_INET6);
 }
@@ -909,6 +939,8 @@ ATF_TC_HEAD(sbytes_positive_v4, tc)
 }
 ATF_TC_BODY(sbytes_positive_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	sbytes_positive_test(AF_INET);
 }
@@ -922,6 +954,8 @@ ATF_TC_HEAD(sbytes_positive_v6, tc)
 }
 ATF_TC_BODY(sbytes_positive_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	sbytes_positive_test(AF_INET6);
 }
@@ -960,6 +994,8 @@ ATF_TC_HEAD(sbytes_negative_v4, tc)
 }
 ATF_TC_BODY(sbytes_negative_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	sbytes_negative_test(AF_INET);
 }
@@ -973,6 +1009,8 @@ ATF_TC_HEAD(sbytes_negative_v6, tc)
 }
 ATF_TC_BODY(sbytes_negative_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	sbytes_negative_test(AF_INET6);
 }
@@ -1005,6 +1043,8 @@ ATF_TC_HEAD(s_negative_not_connected_socket_v4, tc)
 
 ATF_TC_BODY(s_negative_not_connected_socket_v4, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	s_negative_not_connected_socket_test(AF_INET);
 }
@@ -1019,6 +1059,8 @@ ATF_TC_HEAD(s_negative_not_connected_socket_v6, tc)
 
 ATF_TC_BODY(s_negative_not_connected_socket_v6, tc)
 {
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
 
 	s_negative_not_connected_socket_test(AF_INET6);
 }
@@ -1035,6 +1077,9 @@ ATF_TC_BODY(s_negative_not_descriptor, tc)
 {
 	int client_sock, error, fd;
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	client_sock = -1;
 
 	fd = open(SOURCE_FILE, O_CREAT|O_RDWR, 0600);
@@ -1058,6 +1103,9 @@ ATF_TC_BODY(s_negative_not_socket_file_descriptor, tc)
 {
 	int client_sock, error, fd;
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	fd = open(SOURCE_FILE, O_CREAT|O_RDWR, 0600);
 	ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno));
 
@@ -1099,6 +1147,9 @@ ATF_TC_HEAD(s_negative_udp_socket_v4, tc)
 ATF_TC_BODY(s_negative_udp_socket_v4, tc)
 {
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	s_negative_udp_socket_test(AF_INET);
 }
 
@@ -1112,6 +1163,9 @@ ATF_TC_HEAD(s_negative_udp_socket_v6, tc)
 ATF_TC_BODY(s_negative_udp_socket_v6, tc)
 {
 
+	if (atf_tc_get_config_var_as_bool_wd(tc, "qemu", false))
+		atf_tc_skip("Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25");
+
 	s_negative_udp_socket_test(AF_INET6);
 }
 
diff --git a/tests/sys/kern/sendfile_test.sh b/tests/sys/kern/sendfile_test.sh
index 2efda9310396..11bd03705f53 100755
--- a/tests/sys/kern/sendfile_test.sh
+++ b/tests/sys/kern/sendfile_test.sh
@@ -51,6 +51,10 @@ io_success_head()
 }
 io_success_body()
 {
+	if [ "$(atf_config_get qemu false)" = "true" ]; then
+	    atf_skip "Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25"
+	fi
+
 	md=$(alloc_md)
 	common_body_setup $md
 
@@ -70,6 +74,10 @@ io_fail_sync_head()
 }
 io_fail_sync_body()
 {
+	if [ "$(atf_config_get qemu false)" = "true" ]; then
+	    atf_skip "Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25"
+	fi
+
 	md=$(alloc_md)
 	common_body_setup $md
 
@@ -90,6 +98,10 @@ io_fail_async_head()
 }
 io_fail_async_body()
 {
+	if [ "$(atf_config_get qemu false)" = "true" ]; then
+	    atf_skip "Sendfile(4) unimplemented. https://github.com/qemu-bsd-user/qemu-bsd-user/issues/25"
+	fi
+
 	md=$(alloc_md)
 	common_body_setup $md