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