// SPDX-License-Identifier: GPL-2.0
// Test TCP_INQ and TCP_CM_INQ on the client side.
`./defaults.sh
`

// Create a socket and set it to non-blocking.
    0	socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
   +0	fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
   +0	fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0

// Connect to the server and enable TCP_INQ.
   +0	connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
   +0	setsockopt(3, SOL_TCP, TCP_INQ, [1], 4) = 0

   +0	> S 0:0(0) <mss 1460,sackOK,TS val 100 ecr 0,nop,wscale 8>
 +.01	< S. 0:0(0) ack 1 win 5792 <mss 1460,sackOK,TS val 700 ecr 100,nop,wscale 7>
   +0	> . 1:1(0) ack 1 <nop,nop,TS val 200 ecr 700>

// Now we have 10K of data ready on the socket.
   +0	< . 1:10001(10000) ack 1 win 514
   +0	> . 1:1(0) ack 10001 <nop,nop,TS val 200 ecr 700>

// We read 1K and we should have 9K ready to read.
   +0	recvmsg(3, {msg_name(...)=...,
		    msg_iov(1)=[{..., 1000}],
		    msg_flags=0,
		    msg_control=[{cmsg_level=SOL_TCP,
				  cmsg_type=TCP_CM_INQ,
				  cmsg_data=9000}]}, 0) = 1000
// We read 9K and we should have no further data ready to read.
   +0	recvmsg(3, {msg_name(...)=...,
		    msg_iov(1)=[{..., 9000}],
		    msg_flags=0,
		    msg_control=[{cmsg_level=SOL_TCP,
				  cmsg_type=TCP_CM_INQ,
				  cmsg_data=0}]}, 0) = 9000

// Server sends more data and closes the connections.
   +0	< F. 10001:20001(10000) ack 1 win 514
   +0	> . 1:1(0) ack 20002 <nop,nop,TS val 200 ecr 700>

// We read 10K and we should have one "fake" byte because the connection is
// closed.
   +0	recvmsg(3, {msg_name(...)=...,
		    msg_iov(1)=[{..., 10000}],
		    msg_flags=0,
		    msg_control=[{cmsg_level=SOL_TCP,
				  cmsg_type=TCP_CM_INQ,
				  cmsg_data=1}]}, 0) = 10000
// Now, receive EOF.
   +0	read(3, ..., 2000) = 0
