From 2bdcb46880bede8ee771437414ba30dee70fee3a Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Sun, 28 Dec 2014 08:22:42 +0100 Subject: [PATCH] Move the TCP test into a tcp directory Add some UDPLite tests. --- .../fast_retransmit/fr-4pkt-sack-bsd.pkt | 0 .../tests/bsd/udplite/udplite-cscov-recv.pkt | 53 +++++++++++++++++++ .../tests/bsd/udplite/udplite-cscov-send.pkt | 14 +++++ .../bsd/udplite/udplite-cscov-sockopt.pkt | 29 ++++++++++ .../bsd/udplite/udplite-port-unreachable.pkt | 14 +++++ .../udplite/udplite-protocol-unreachable.pkt | 14 +++++ 6 files changed, 124 insertions(+) rename gtests/net/packetdrill/tests/bsd/{ => tcp}/fast_retransmit/fr-4pkt-sack-bsd.pkt (100%) create mode 100644 gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt create mode 100644 gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt create mode 100644 gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt create mode 100644 gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt create mode 100644 gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt diff --git a/gtests/net/packetdrill/tests/bsd/fast_retransmit/fr-4pkt-sack-bsd.pkt b/gtests/net/packetdrill/tests/bsd/tcp/fast_retransmit/fr-4pkt-sack-bsd.pkt similarity index 100% rename from gtests/net/packetdrill/tests/bsd/fast_retransmit/fr-4pkt-sack-bsd.pkt rename to gtests/net/packetdrill/tests/bsd/tcp/fast_retransmit/fr-4pkt-sack-bsd.pkt diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt new file mode 100644 index 00000000..ebdefdf7 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt @@ -0,0 +1,53 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) ++0.000 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 +// ++0.100 sendto(3, ..., 1000, 0, ..., ...) = 1000 ++0.000 > udplite(1000, 0) +// ++0.000 getsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [0], [4]) = 0 ++0.000 < udplite(1280, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 1288) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], 4) = 0 ++0.000 getsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], [4]) = 0 ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 +// ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [10], 4) = 0 ++0.000 < udplite(1280, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 1) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 2) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 3) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 4) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 5) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 6) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 7) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 9) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 10) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(0, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 0 ++0.000 < udplite(0, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 0 ++0.000 < udplite(1, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1 ++0.000 < udplite(1, 9) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1 ++0.000 < udplite(1, 10) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.100 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt new file mode 100644 index 00000000..ea3ba240 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt @@ -0,0 +1,14 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [8], 4) = 0 ++0.000 sendto(3, ..., 1, 0, ..., ...) = 1 ++0.000 > udplite(1, 8) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [508], 4) = 0 ++0.100 sendto(3, ..., 1000, 0, ..., ...) = 1000 ++0.000 > udplite(1000, 508) ++0.100 sendto(3, ..., 499, 0, ..., ...) = 499 ++0.000 > udplite(499, 0) ++0.100 sendto(3, ..., 500, 0, ..., ...) = 500 ++0.000 > udplite(500, 0) ++0.100 sendto(3, ..., 501, 0, ..., ...) = 501 ++0.000 > udplite(501, 508) ++0.100 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt new file mode 100644 index 00000000..8cebe26f --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt @@ -0,0 +1,29 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [-1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [0], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [2], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [3], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [4], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [5], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [6], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [7], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [8], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [65535], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [65536], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [4294967295], 4) = -1 (Invalid parameter) +// ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [-1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [0], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [2], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [3], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [4], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [5], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [6], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [7], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [65535], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [65536], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [4294967295], 4) = -1 (Invalid parameter) ++0.000 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt new file mode 100644 index 00000000..9ca4cf66 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt @@ -0,0 +1,14 @@ +// Test handling of incoming ICMP packets. + +// Connect the socket. + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 bind(3, ..., ...) = 0 ++0.000 connect(3, ..., ...) = 0 +// Trigger the ICMP message. ++0.050 write(3, ..., 1000) = 1000 ++0.000 > udplite(1000, 0) ++0.000 < [udplite(1000, 0)] icmp unreachable port_unreachable +// Check if applications get notified. ++0.050 write(3, ..., 1000) = -1 ECONNREFUSED (Connection refused) +// Termination of the test. ++0.000 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt new file mode 100644 index 00000000..909db722 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt @@ -0,0 +1,14 @@ +// Test handling of incoming ICMP packets. + +// Connect the socket. + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 bind(3, ..., ...) = 0 ++0.000 connect(3, ..., ...) = 0 +// Trigger the ICMP message. ++0.050 write(3, ..., 1000) = 1000 ++0.000 > udplite(1000, 0) ++0.100 < [udplite(1000, 0)] icmp unreachable protocol_unreachable +// Check if applications get notified. ++0.050 write(3, ..., 1000) = -1 ECONNREFUSED (Connection refused) +// Termination of the test. ++0.000 close(3) = 0 -- GitLab