|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1999 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 1999.
Report 1999 Actions
Problem Report Number 1999 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0585 Raised 1996-08-02 08:00 Updated 2003-03-13 08:00 Published null Product Standard Transport Service XTI Certification Program The Open Brand certification program Test Suite VST version 4.1.4 Test Identification XTI.os/common/sync 2,4 Problem Summary PGT4R.014 This test verifies the states returned by t_sync(). One of them, T_OUTCON means waiting status for connection-response against connection-request sent by t_connect(). TCP remains T_OUTCON like state f... Problem Text
This test verifies the states returned by t_sync(). One of them, T_OUTCON
means waiting status for connection-response against connection-request
sent by t_connect().
TCP remains T_OUTCON like state for very short time, so that it is almost
impossible for t_sync() to return such state.Test Output
************************************************************************
/tset/XTI.os/common/sync/T.sync 2 Failed
Test Description:
When fd is obtained from a call to dup( origfd) where origfd refers to
a transport endpoint, then a call to t_sync( fd) returns the current
state of the transport endpoint identified by fd and converts the
uninitialised file descriptor into an initialised transport endpoint.
Testing Requirement(s):
Test for each state that can be associated with the transport
endpoint and test for the case that the state of the transport
endpoint has been changed between the call to dup() and the call
to t_sync().
Test Strategy:
MASTER:
IF transport service is of type T_COTS_ORD
For each of the states T_OUTCON, T_INCON, T_DATAXFER, T_OUTREL,
T_INREL
OBTAIN an endpoint in the required state using provsetup()
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on duped file descriptor
VERIFY return value using tvalrpt()
CLOSE duped file descriptor
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_snddis() on original file descriptor
VERIFY state of original file descriptor is T_IDLE
CALL t_sync() on duped file descriptor
VERIFY return value is T_IDLE using tvalrpt()
IF transport service is of type T_COTS
For each of the states T_OUTCON, T_INCON, T_DATAXFER
OBTAIN an endpoint in the required state using provsetup()
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on duped file descriptor
VERIFY return value using tvalrpt()
CLOSE duped file descriptor
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_snddis() on original file descriptor
VERIFY state of original file descriptor is T_IDLE
CALL t_sync() on duped file descriptor
VERIFY return value is T_IDLE using tvalrpt()
OBTAIN an endpoint in T_IDLE state using provsetup()
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on duped file descriptor
VERIFY return value using tvalrpt()
CLOSE duped file descriptor
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_unbind() on original file descriptor
VERIFY state of original file descriptor is T_UNBND
CALL t_sync() on duped file descriptor
VERIFY return value is T_UNBND using tvalrpt()
CHANGE endpoint to T_UNBND state using t_unbind()
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on duped file descriptor
VERIFY return value using tvalrpt()
CLOSE duped file descriptor
GENERATE a duplicate file descriptor using dup()
CALL t_getstate() on duped file descriptor
VERIFY return value is T_UNINIT
CALL t_bind() on original file descriptor
VERIFY state of original file descriptor is T_BIND
CALL t_sync() on duped file descriptor
VERIFY return value is T_BIND using tvalrpt()
Test Information:
t_sync() on TCP did not return correct state
RETURN VALUES: expected: 3, observed: 5
************************************************************************
************************************************************************
/tset/XTI.os/common/sync/T.sync 3 Failed
Test Description:
When fd is a file descriptor which is not closed on a call to exec()
and the original file descriptor in the calling process refers to a
transport endpoint, then a call to t_sync( fd) returns the current
state of the transport endpoint associated with fd and converts the
uninitialised file descriptor into an initialised transport endpoint.
Testing Requirement(s):
Test for each state that can be associated with the transport
endpoint and test for the case that the state of the transport
endpoint has been changed between the call to exec() and the call
to t_sync().
Test Strategy:
MASTER:
IF transport service is of type T_COTS_ORD
For each of the states T_OUTCON, T_INCON, T_DATAXFER, T_OUTREL,
T_INREL
OBTAIN an endpoint in the required state using provsetup()
SET file descriptor to remain open on exec using fcntl()
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
SYNC with PARENT
SYNC with PARENT
CALL t_sync() on unclosed file descriptor
VERIFY return value is T_IDLE using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_snddis() on original file descriptor
VERIFY state of original file descriptor is T_IDLE
SYNC with CHILD
IF transport service is of type T_COTS
For each of the states T_OUTCON, T_INCON, T_DATAXFER
OBTAIN an endpoint in the required state using provsetup()
SET file descriptor to remain open on exec
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
SYNC with PARENT
SYNC with PARENT
CALL t_sync() on unclosed file descriptor
VERIFY return value is T_IDLE using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_snddis() on original file descriptor
VERIFY state of original file descriptor is T_IDLE
SYNC with CHILD
OBTAIN an endpoint in T_IDLE state using provsetup()
SET file descriptor to remain open on exec
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
SYNC with PARENT
SYNC with PARENT
CALL t_sync() on unclosed file descriptor
VERIFY return value is T_UNBND using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_unbind() on original file descriptor
VERIFY state of original file descriptor is T_UNBND
SYNC with CHILD
OBTAIN an endpoint in T_UNBND state using provsetup()
SET file descriptor to remain open on exec
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
EXECUTE a new process
CALL t_getstate() on unclosed file descriptor
VERIFY return value is T_UNINIT
SYNC with PARENT
SYNC with PARENT
CALL t_sync() on unclosed file descriptor
VERIFY return value is T_BIND using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_bind() on original file descriptor
VERIFY state of original file descriptor is T_BIND
SYNC with CHILD
Test Information:
t_sync() on TCP did not return correct state
RETURN VALUES: expected: 3, observed: 5
************************************************************************
************************************************************************
/tset/XTI.os/common/sync/T.sync 4 Failed
Test Description:
A call to t_sync() on an initialised transport endpoint returns the
current state of the transport endpoint.
Testing Requirement(s):
Test using two co-operating processes, one of which is causing
state changes at the transport endpoint and the other is issuing
the t_sync() call to obtain state information.
Test Strategy:
MASTER:
IF transport service is of type T_COTS_ORD
For each of the states T_OUTCON, T_INCON, T_DATAXFER, T_OUTREL,
T_INREL
OBTAIN an endpoint in required state using provsetup()
CALL tet_fork()
CHILD:
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
SYNC with PARENT
SYNC with PARENT
CALL t_sync()
VERIFY return value is T_IDLE using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_snddis()
VERIFY state is T_IDLE
SYNC with CHILD
IF transport service is of type T_COTS
For each of the states T_OUTCON, T_INCON, T_DATAXFER
OBTAIN an endpoint in required state using provsetup()
CALL tet_fork()
CHILD:
CALL t_sync()
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
SYNC with PARENT
SYNC with PARENT
CALL t_sync()
VERIFY return value is T_IDLE using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_snddis()
VERIFY state is T_IDLE
SYNC with CHILD
OBTAIN an endpoint in required state using provsetup()
CALL tet_fork()
CHILD:
CALL t_sync()
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
SYNC with PARENT
SYNC with PARENT
CALL t_sync() on unclosed file descriptor
VERIFY return value is T_UNBND using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_unbind()
VERIFY state is T_UNBND
SYNC with CHILD
OBTAIN an endpoint in T_UNBND state using provsetup()
CALL tet_fork()
CHILD:
CALL t_sync() on unclosed file descriptor
VERIFY return value using tvalrpt()
PARENT:
WAIT for child to complete
CALL tet_fork()
CHILD:
SYNC with PARENT
SYNC with PARENT
CALL t_sync()
VERIFY return value is T_BIND using tvalrpt()
PARENT:
SYNC with CHILD
CALL t_bind()
VERIFY state is T_BIND
SYNC with CHILD
Test Information:
t_sync() on TCP did not return correct state
RETURN VALUES: expected: 3, observed: 5
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
An interpretation request relating to this problem has been received from
another supplier and the following commentary was included in that request:
> It is recognised that, because of the manner in which the TCP protocol layer
> deals with a connect request, the asynchronous connect facility is not
> particularly useful for TCP based applications. Even in the case that the
> application is written with an asynchronous request to allow portability
> across different transports, the fact that the application is informed that
> data transfer can take place should not create a problem.
>
> It is recommended that this is treated as a Minor System Fault.
It is not recommended that this is treated as a test suite fault, but a waiver
could be granted for a Minor System Fault.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Rejected (REJ) Review Conclusion
This request is refused.
Problem Reporting System Options:
- View Report 1999
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority