HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1999 Details

Help 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:

     

    Back   


Contact the Certification Authority