|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1264 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 1264.
Report 1264 Actions
Problem Report Number 1264 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0546 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1999-04-23 08:00 Product Standard Sockets (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 5.0.3 Test Identification CAPIsockets/send 27 Problem Summary TSD4U.00272 This test may fail (if datagram sockets cannot be filled on the implementation). Problem Text
This IR is for the following tests:
Sockets: send 27
Sockets: sendto 44
Sockets: sendmsg 46
These tests are supposed to fill up the send socket and then test that send()
blocks. However, on our implementation the send socket never gets full. In
these tests both sockets are datagram sockets. It is common practice (reference:
TCP/IP, Illustrated Vol2) to pass the message immediately to the protocol
where it is queued for transmission on the the appropriate network device.
This in effect means no data is stored in the send buffer directly. These
tests send messages that are not greater than the maximum buffer size and
thus get sent directly to the protocol layer.
Note; that there is an error in these tests, the following line is incorrect.
sprintf(ebuf, " Expected -1 %d Received: %d\n", ret);
The first "%d" should be deleted.Test Output
TEST CASE: send
TEST PURPOSE #27
If the implementation supports a communications domain
and a socket type and allows the option to be set:
The SO_SNDTIMEO option shall define the amount of time
to block because flow control prevents data from
being sent for a call to ssize_t send(int socket,
const void *buffer, size_t length, int flags).
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 9.3.155.183, port = 2237
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.183, port 2237
PREP: See if SO_SNDTIMEO is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
CLEANUP: Have server flush data
CLEANUP: Close socket, kill server
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.ZasfUa
PREP: Server: create socket
PREP: Server: bind address 9.3.155.183, port 2237 to socket
PREP: Server: listen on socket
PREP: Server: notify client server is ready
PREP: Server: accept connection
INFO: Server: accepted connection from address 9.3.155.183, port 32918
PREP: sleep_server: wait for parent to complete test
INFO: sleep_server: parent completed test
CLEANUP: sleep_server: flush data
INFO: Server terminated
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Bind address ../tmp/uclient.ZdsfUb to socket
PREP: Connect to address ../tmp/unix.ZasfUa
PREP: Set O_NONBLOCK
PREP: See if SO_SNDTIMEO is supported
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
CLEANUP: Have server flush data
CLEANUP: Close socket, kill server
TEST: AF_INET SOCK_DGRAM
PREP: Create test sockaddr_in: address = 9.3.155.183, port = 2238
PREP: Server: create socket
PREP: Server: bind address ../tmp/unix.ZasfUa to socket
PREP: Server: listen on socket
PREP: Server: notify client ready to accept
PREP: Server: accept connection
INFO: Server: accepted connection from address ../tmp/uclient.ZdsfUb
PREP: sleep_server: wait for parent to complete test
CLEANUP: sleep_server: flush data
INFO: Server terminated
PREP: Server: create socket
PREP: Server: bind address 9.3.155.183, port 2238 to socket
PREP: Server: notify client server is ready
PREP: Server: wait for parent to complete test
INFO: Server terminated
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.183, port 2238
PREP: See if SO_SNDTIMEO is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
ERROR: Socket did not fill after 2000 messages
CLEANUP: Have server flush data
ERROR: Test took longer than 1200 seconds: presuming
function is hung and terminating test
27 FAIL
TEST CASE: sendto
TEST PURPOSE #44
If the implementation supports a communications domain
and a socket type and allows the option to be set:
The SO_SNDTIMEO option shall define the amount of time
to block because flow control prevents data from
being sent for a call to ssize_t sendto(int socket,
const void *message, size_t length, int flags, const
struct sockaddr *dest_addr, size_t dest_len).
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 9.3.155.183, port = 4369
PREP: Server: create socket
PREP: Server: bind address 9.3.155.183, port 4369 to socket
PREP: Server: listen on socket
PREP: Server: notify client server is ready
PREP: Server: accept connection
INFO: Server: accepted connection from address 9.3.155.183, port 32937
PREP: sleep_server: wait for parent to complete test
INFO: sleep_server: parent completed test
CLEANUP: sleep_server: flush data
INFO: Server terminated
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.183, port 4369
PREP: See if SO_SNDTIMEO is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
CLEANUP: Have server flush data
CLEANUP: Close socket, kill server
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.s6soEa
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Bind address ../tmp/uclient.s9soEb to socket
PREP: Connect to address ../tmp/unix.s6soEa
PREP: Set O_NONBLOCK
PREP: See if SO_SNDTIMEO is supported
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
CLEANUP: Have server flush data
CLEANUP: Close socket, kill server
TEST: AF_INET SOCK_DGRAM
PREP: Create test sockaddr_in: address = 9.3.155.183, port = 4370
PREP: Server: create socket
PREP: Server: bind address ../tmp/unix.s6soEa to socket
PREP: Server: listen on socket
PREP: Server: notify client ready to accept
PREP: Server: accept connection
INFO: Server: accepted connection from address ../tmp/uclient.s9soEb
PREP: sleep_server: wait for parent to complete test
CLEANUP: sleep_server: flush data
INFO: Server terminated
INFO: Server received signal 15
INFO: Server terminated
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.183, port 4370
PREP: See if SO_SNDTIMEO is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
ERROR: Socket did not fill after 2000 messages
CLEANUP: Have server flush data
PREP: Server: create socket
PREP: Server: bind address 9.3.155.183, port 4370 to socket
PREP: Server: notify client server is ready
PREP: Server: wait for parent to complete test
INFO: Server terminated
ERROR: Test took longer than 1200 seconds: presuming
function is hung and terminating test
44 FAIL
TEST CASE: sendmsg
TEST PURPOSE #46
If the implementation supports a communications domain
and a socket type and allows the option to be set:
The SO_SNDTIMEO option shall define the amount of time
to block because flow control prevents data from
being sent for a call to ssize_t sendmsg(int socket,
const struct msghdr *message, int flags).
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 9.3.155.181, port = 3745
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.181, port 3745
PREP: Check if option is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
ERROR: Call to send did not timeout as expected
Expected -1 12 Received: 53296
CLEANUP: Have server flush data
PREP: Server: create socket
PREP: Server: bind address 9.3.155.181, port 3745 to socket
PREP: Server: listen on socket
PREP: Server: notify client server is ready
PREP: Server: accept connection
INFO: Server: accepted connection from address 9.3.155.181, port 32929
PREP: sleep_server: wait for parent to complete test
INFO: sleep_server: parent completed test
CLEANUP: sleep_server: flush data
INFO: Server terminated
INFO: Server received signal 15
INFO: Server terminated
46 FAILReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
For send 27 and sendto 44:
We agree this is a test suite deficiency in the test suite versions listed.
For sendmsg 46:
This appears to be an unrelated failure - it is occurring on a stream
socket and at a different point in the test. We beleive this is an
implementation issue and this waiver does NOT apply to sendmsg 46.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency. This TSD applies to
send 27 and sendto 44 tests only.
Problem Reporting System Options:
- View Report 1264
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority