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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1893 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 1893.


Report 1893 Actions


    Problem Report Number 1893
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0954
    Raised 2000-01-14 08:00
    Updated 2003-03-13 08:00
    Published 2000-01-19 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.4.4
    Test Identification POSIX.os/devclass/tcsendbrea 9-12
    Linked Problem Reports PIN4.016, (in, old, system)
    Problem Summary TSD5.023 POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved POSIX.os/devclass/tcsendbrea/T.tcsend...
    Problem Text

    POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed
    POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved
    POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved
    POSIX.os/devclass/tcsendbrea/T.tcsendbrea 12 Unresolved

    **************************************************************

    Tests 9 through 12 fail and/or are unresolved when they are run as
    members of the tcsendbrea testset. When run individually or as a
    sequence 9-12 or even 7-12, without running any of the remaining
    tests (ie: 1-6), they all pass successfully.

    Explanation for the above is as follows:

    a) the tcsendbrea testset begins by calling termios_prep() which
    will make the parent process become a session leader, initializes
    and open the terminal ports using file descriptors tty_fildes and
    loop_fildes, and then makes tty_fildes the session leader's
    controlling terminal.

    b) tests 1-6 are child processes, they all call break_up() with
    break_prep_mode set to USE_CTTY. break_up() creates a new session
    leader using setsid(), reopen loop_fildes using opnctl(), thereby
    establishing loop_fildes as a controlling terminal of the new
    session. Tests 1-6 then verify various tcsendbreak assertions on
    tty_fildes.

    c) Test 9 also calls break_prep() but with break_prep_mode set to
    USE_NON_CTTY. Break_prep() in this case does not reopen the
    loopback port but assigns to loop_fildes its previous value saved
    in loop_fildes_keep during termios_prep().

    It is to be noted at this point that in our implementation, when a
    process becomes a session leader and acquires a controlling
    terminal, when the process exits, the file descriptors of the
    controlling terminal are disassociated on a system wide basis.

    Given the above behavior, the port associated with loop_fildes is
    disconnected upon exit of test 6, and when test 9 later on tries
    to send a break to loop_fildes using tcsendbreak(), the test fails
    to perform the action since the file descriptor is no longer valid.

    When test 9 is run individually, the testset is now reduced to
    termios_prep() and test9(). tty_fildes and loop_fildes are valid
    file descriptors after the termios_prep() call and test 9 executes
    successfully.

    The assertion for test 9, "when tcsendbreak() is called from a
    foreground process, and when fildes refers to a non-controlling
    terminal, the tcsendbreak actions shall be performed", is verified
    when test 9 is run individually because the action is made on
    loop_fildes which in this case is not being associated with a
    controlling terminal.

    d) tests 10, 11, and 12 begin by performing tcflush() on the
    loop_fildes file descriptor. The three tests are getting
    Unresolved because tcflush()is called on an invalid file descriptor
    which port has being disconnected after test 6 given our system
    wide behavior,and hence giving EIO errors as if modem disconnect.

    When test #10 through #12 are run individually or even in the
    sequence 9-12, they all run successfully.

    From the above explanation it is apparant that the failures are
    not due to a non-conforming tcsendbreak() API, but because of
    the problem in test suite.


    Test Output

    /tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed

    Test Description:
    If general terminal interface supported:
    when tcsendbreak() is called from a foreground process, and when
    fildes refers to a non-controlling terminal, the tcsendbreak
    actions shall be performed.
    Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X1(C)

    Test Strategy:
    OPEN and initialise terminal file and loop back file
    SET time out for WAITTIME
    SEND a break using tcsendbreak(loop_fildes, 0)
    VERIFY that tcsendbreak() returned zero, or -1 and errno EINTR.
    WAIT for a signal, using pause()
    VERIFY that SIGINT signal was received

    Test Information:
    tcsendbreak(fd, 0) returned -1 and errno 5 (EIO)
    expected return 0, or return -1 and errno 4 (EINTR)

    tcsendbreak() action was not performed (SIGINT not received)
    ************************************************************************

    /tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved

    Test Description:
    If general terminal interface supported:
    when tcsendbreak() is called from a background process, that is not
    blocking or ignoring the SIGTTOU signal, and when fildes refers to
    a non-controlling terminal, the tcsendbreak actions shall be
    performed.
    Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X2(C)

    Test Information:
    tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)

    ************************************************************************

    /tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved

    Test Description:
    If general terminal interface supported:
    when tcsendbreak() is called from a background process, that is
    blocking the SIGTTOU signal, and when fildes refers to a non-
    controlling terminal, the tcsendbreak actions shall be performed.
    Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X3(C)

    Test Information:
    tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)

    ************************************************************************

    /tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 12 Unresolved

    Test Description:
    If general terminal interface supported:
    when tcsendbreak() is called from a background process, that is
    ignoring the SIGTTOU signal, and when fildes refers to a non-
    controlling terminal, the tcsendbreak actions shall be performed.
    Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X4(C)

    Test Information:
    tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)

    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    This is accepted as a fault in the test suite.

    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.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority