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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1456 Actions


    Problem Report Number 1456
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0738
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1995-11-21 08:00
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification base/execvp 1
    Problem Summary TSD4U.00076 This test may fail on implementations where the time required to fork() may take more than the 1 second allowed.
    Problem Text
    This test may fail on implementations where the time required to
    fork() may take more than the 1 second allowed.

    In the family of fexec test cases, each exec* call has a test case 1
    that is testing the inheritance of interval timers across exec* calls.

    All of these "inheritance" tests have a problem on machines that are
    running a little slower than what would normally be expected. This is
    the our situation where 150 testers are crowded onto one machine. The
    test case attempts to adjust for this in measuring it_value by
    allowing the value to have dropped by the value of the elapsed time.

    Unfortunately, on a slow system, there is some additional elapsed time
    because the initial time is recorded, followed by a FORK and then
    invocation of setitimer() to actually set the initial timer value.
    The additional elapsed time occurs because some systems take longer
    than the allowed 1 second fudge time permitted by the test case to
    perform the FORK operation:

    if((my_time.it_interval.tv_sec != reply.it_interval.tv_sec) ||
    (my_time.it_interval.tv_usec != reply.it_interval.tv_usec) ||
    ((my_time.it_value.tv_sec - elapsed_time + 1) < reply.it_value.tv_se
    ((my_time.it_value.tv_sec - elapsed_time - 1) > reply.it_value.tv_se

    The start of time recording is prior to the FORK call. On slow
    systems, this elapsed time is exaggerated by several seconds so while
    the proper inheritance is still occurring, the test case is not
    allowing a few extra seconds for FORK prior to the issuance of
    setitimer().
    Test Output
    10|613 /tset/CAPIbase/fexecl/fexecl1 16:53:41|TC Start, scenario ref 76-
    15|595 1.10 1|TCM Start
    400|595 1 1 16:53:44|IC Start
    200|595 1 16:53:44|TP Start
    520|595 1 7012375 1 1|SPEC1170TESTSUITE CASE 1
    520|595 1 7012375 1 2|A successful call to int execl(const char *path, c
    520|595 1 7012375 1 3|char *arg0, .../*, (char *)0 */) shall preserve
    520|595 1 7012375 1 4|interval timers across the call.
    520|595 1 20119576 1 1|PREP: Open communication pipe for child
    520|595 1 20119576 1 2|PREP: Fork child
    520|595 1 20119576 2 1|PREP: Wait for child
    520|595 1 20119576 2 2|PREP: Read child's ITIMER_REAL value
    520|595 1 20119576 2 3|TEST: ITIMER_REAL inherited after execl
    520|595 1 20119576 2 4|PREP: Fork child
    520|595 1 25362454 1 1|PREP: Connect child's pipe to stdout
    520|595 1 25362454 1 2|PREP: Construct exec path
    520|595 1 25362454 1 3|PREP: Set ITIMER_REAL interval timer
    520|595 1 25362454 1 4|PREP: Issue execl
    520|595 1 20119576 3 1|PREP: Wait for child
    520|595 1 20119576 3 2|PREP: Read child's ITIMER_VIRTUAL values
    520|595 1 20119576 3 3|TEST: ITIMER_VIRTUAL inherited after execl
    520|595 1 20119576 3 4|ERROR: ITIMER_VIRTUAL not inherited correctly
    520|595 1 20119576 3 5| Expected it_interval.tv_sec = 1234567
    520|595 1 20119576 3 6| it_interval.tv_usec = 89
    520|595 1 20119576 3 7| it_value.tv_sec ~= 1234567
    520|595 1 20119576 3 8| Received it_interval.tv_sec = 1234567
    520|595 1 20119576 3 9| it_interval.tv_usec = 89
    520|595 1 20119576 3 10| it_value.tv_sec ~= 1234566
    520|595 1 25427990 1 1|PREP: Connect child's pipe to stdout
    520|595 1 25427990 1 2|PREP: Construct exec path
    520|595 1 25427990 1 3|PREP: Set ITIMER_VIRTUAL interval timer
    520|595 1 25427990 1 4|PREP: Issue execl
    220|595 1 1 16:53:50|FAIL
    410|595 1 1 16:53:50|IC End
    80|613 0 16:53:50|TC End

    10|0 /tset/CAPIbase/fexecle/fexecle1 13:16:53|TC Start, scenario ref 0-1
    15|0 1.10 1|TCM Start
    400|0 1 1 13:16:56|IC Start
    200|0 1 13:16:56|TP Start
    520|0 1 393232 1 1|SPEC1170TESTSUITE CASE 1
    520|0 1 393232 1 2|A successful call to int execle(const
    520|0 1 393232 1 3|char *path, const char *arg0, ... /*, (char *0), char
    520|0 1 393232 1 4|*const envp[]*/) shall preserve interval timers acros
    520|0 1 393232 1 5|the call.
    520|0 1 262157 1 1|PREP: Open communication pipe for child
    520|0 1 262157 1 2|PREP: Fork child
    520|0 1 262157 2 1|PREP: Wait for child
    520|0 1 262157 2 2|PREP: Read child's ITIMER_REAL value
    520|0 1 262157 2 3|TEST: ITIMER_REAL inherited after execle
    520|0 1 262157 2 4|ERROR: ITIMER_REAL not inherited correctly
    520|0 1 262157 2 5| Expected it_interval.tv_sec = 1234567
    520|0 1 262157 2 6| it_interval.tv_usec = 89
    520|0 1 262157 2 7| it_value.tv_sec ~= 1234567
    520|0 1 262157 2 8| Received it_interval.tv_sec = 1234567
    520|0 1 262157 2 9| it_interval.tv_usec = 89
    520|0 1 262157 2 10| it_value.tv_sec ~= 1234566
    520|0 1 131086 1 1|PREP: Connect child's pipe to stdout
    520|0 1 131086 1 2|PREP: Construct exec path
    520|0 1 131086 1 3|PREP: Set ITIMER_REAL interval timer
    520|0 1 131086 1 4|PREP: Issue execle
    220|0 1 1 13:17:05|FAIL
    410|0 1 1 13:17:05|IC End
    80|0 0 13:17:07|TC End
    900|13:17:07|TCC End

    70||"SPEC1170TESTSUITE AREA execlp 14"
    10|641 /tset/CAPIbase/fexeclp/fexeclp1 16:57:13|TC Start, scenario ref 7
    15|623 1.10 1|TCM Start
    400|623 1 1 16:57:16|IC Start
    200|623 1 16:57:16|TP Start
    520|623 1 786464 1 1|SPEC1170TESTSUITE CASE 1
    520|623 1 786464 1 2|A successful call to int execlp(const
    520|623 1 786464 1 3|char *file, const char *arg0, ... /*, (char *0)*/)
    520|623 1 786464 1 4|shall preserve interval timers across the call.
    520|623 1 22347800 1 1|PREP: Open communication pipe for child
    520|623 1 22347800 1 2|PREP: Fork child
    520|623 1 22347800 2 1|PREP: Wait for child
    520|623 1 22347800 2 2|PREP: Read child's ITIMER_REAL value
    520|623 1 22347800 2 3|TEST: ITIMER_REAL inherited after execlp
    520|623 1 22347800 2 4|PREP: Fork child
    520|623 1 8716311 1 1|PREP: Connect child's pipe to stdout
    520|623 1 8716311 1 2|PREP: Construct exec path
    520|623 1 8716311 1 3|PREP: Set ITIMER_REAL interval timer
    520|623 1 8716311 1 4|PREP: Issue execlp
    520|623 1 22347800 3 1|PREP: Wait for child
    520|623 1 22347800 3 2|PREP: Read child's ITIMER_VIRTUAL values
    520|623 1 22347800 3 3|TEST: ITIMER_VIRTUAL inherited after execlp
    520|623 1 22347800 3 4|ERROR: ITIMER_VIRTUAL not inherited correctly
    520|623 1 22347800 3 5| Expected it_interval.tv_sec = 1234567
    520|623 1 22347800 3 6| it_interval.tv_usec = 89
    520|623 1 22347800 3 7| it_value.tv_sec ~= 1234567
    520|623 1 22347800 3 8| Received it_interval.tv_sec = 1234567
    520|623 1 22347800 3 9| it_interval.tv_usec = 89
    520|623 1 22347800 3 10| it_value.tv_sec ~= 1234566
    520|623 1 8781847 1 1|PREP: Connect child's pipe to stdout
    520|623 1 8781847 1 2|PREP: Construct exec path
    520|623 1 8781847 1 3|PREP: Set ITIMER_VIRTUAL interval timer
    520|623 1 8781847 1 4|PREP: Issue execlp
    220|623 1 1 16:57:22|FAIL
    410|623 1 1 16:57:22|IC End
    80|641 0 16:57:22|TC End

    10|655 /tset/CAPIbase/fexecv/fexecv1 16:59:05|TC Start, scenario ref 76-
    15|637 1.10 1|TCM Start
    400|637 1 1 16:59:08|IC Start
    200|637 1 16:59:08|TP Start
    520|637 1 1703968 1 1|SPEC1170TESTSUITE CASE 1
    520|637 1 1703968 1 2|A successful call to int execv(const char
    520|637 1 1703968 1 3|*path, char *const argv[]) shall preserve interval
    520|637 1 1703968 1 4|timers across the call.
    520|637 1 23461912 1 1|PREP: Open communication pipe for child
    520|637 1 23461912 1 2|PREP: Fork child
    520|637 1 23461912 2 1|PREP: Wait for child
    520|637 1 23461912 2 2|PREP: Read child's ITIMER_REAL value
    520|637 1 23461912 2 3|TEST: ITIMER_REAL inherited after execv
    520|637 1 23461912 2 4|PREP: Fork child
    520|637 1 9895959 1 1|PREP: Connect child's pipe to stdout
    520|637 1 9895959 1 2|PREP: Construct exec path
    520|637 1 9895959 1 3|PREP: Set ITIMER_REAL interval timer
    520|637 1 9895959 1 4|PREP: Issue execv
    520|637 1 23461912 3 1|PREP: Wait for child
    520|637 1 23461912 3 2|PREP: Read child's ITIMER_VIRTUAL values
    520|637 1 23461912 3 3|TEST: ITIMER_VIRTUAL inherited after execv
    520|637 1 23461912 3 4|PREP: Fork child
    520|637 1 9961495 1 1|PREP: Connect child's pipe to stdout
    520|637 1 9961495 1 2|PREP: Construct exec path
    520|637 1 9961495 1 3|PREP: Set ITIMER_VIRTUAL interval timer
    520|637 1 9961495 1 4|PREP: Issue execv
    520|637 1 23461912 4 1|PREP: Wait for child
    520|637 1 23461912 4 2|PREP: Read child's ITIMER_PROF values
    520|637 1 23461912 4 3|TEST: ITIMER_PROF inherited after execv
    520|637 1 23461912 4 4|ERROR: ITIMER_PROF not inherited correctly
    520|637 1 23461912 4 5| Expected it_interval.tv_sec = 1234567
    520|637 1 23461912 4 6| it_interval.tv_usec = 89
    520|637 1 23461912 4 7| it_value.tv_sec ~= 1234567
    520|637 1 23461912 4 8| Received it_interval.tv_sec = 1234567
    520|637 1 23461912 4 9| it_interval.tv_usec = 89
    520|637 1 23461912 4 10| it_value.tv_sec ~= 1234566
    520|637 1 10027031 1 1|PREP: Connect child's pipe to stdout
    520|637 1 10027031 1 2|PREP: Construct exec path
    520|637 1 10027031 1 3|PREP: Set ITIMER_PROF interval timer
    520|637 1 10027031 1 4|PREP: Issue execv
    220|637 1 1 16:59:16|FAIL
    410|637 1 1 16:59:16|IC End
    80|655 0 16:59:16|TC End

    10|0 /tset/CAPIbase/fexecve/fexecve1 13:32:57|TC Start, scenario ref 0-1
    15|0 1.10 1|TCM Start
    400|0 1 1 13:33:00|IC Start
    200|0 1 13:33:00|TP Start
    520|0 1 917520 1 1|SPEC1170TESTSUITE CASE 1
    520|0 1 917520 1 2|A successful call to int execve(const
    520|0 1 917520 1 3|char *path, char *const argv[], char *const envp[])
    520|0 1 917520 1 4|shall preserve interval timers across the call.
    520|0 1 458765 1 1|PREP: Open communication pipe for child
    520|0 1 458765 1 2|PREP: Fork child
    520|0 1 458765 2 1|PREP: Wait for child
    520|0 1 458765 2 2|PREP: Read child's ITIMER_REAL value
    520|0 1 458765 2 3|TEST: ITIMER_REAL inherited after execve
    520|0 1 458765 2 4|PREP: Fork child
    520|0 1 458766 1 1|PREP: Connect child's pipe to stdout
    520|0 1 458766 1 2|PREP: Construct exec path
    520|0 1 458766 1 3|PREP: Set ITIMER_REAL interval timer
    520|0 1 458766 1 4|PREP: Issue execve
    520|0 1 458765 3 1|PREP: Wait for child
    520|0 1 458765 3 2|PREP: Read child's ITIMER_VIRTUAL values
    520|0 1 458765 3 3|TEST: ITIMER_VIRTUAL inherited after execve
    520|0 1 458765 3 4|ERROR: ITIMER_VIRTUAL not inherited correctly
    520|0 1 458765 3 5| Expected it_interval.tv_sec = 1234567
    520|0 1 458765 3 6| it_interval.tv_usec = 89
    520|0 1 458765 3 7| it_value.tv_sec ~= 1234567
    520|0 1 458765 3 8| Received it_interval.tv_sec = 1234567
    520|0 1 458765 3 9| it_interval.tv_usec = 89
    520|0 1 458765 3 10| it_value.tv_sec ~= 1234566
    520|0 1 524302 1 1|PREP: Connect child's pipe to stdout
    520|0 1 524302 1 2|PREP: Construct exec path
    520|0 1 524302 1 3|PREP: Set ITIMER_VIRTUAL interval timer
    520|0 1 524302 1 4|PREP: Issue execve
    220|0 1 1 13:33:06|FAIL
    410|0 1 1 13:33:06|IC End
    80|0 0 13:33:08|TC End
    900|13:33:08|TCC End

    10|683 /tset/CAPIbase/fexecvp/fexecvp1 17:02:25|TC Start, scenario ref 7
    15|665 1.10 1|TCM Start
    400|665 1 1 17:02:28|IC Start
    200|665 1 17:02:28|TP Start
    520|665 1 3538976 1 1|SPEC1170TESTSUITE CASE 1
    520|665 1 3538976 1 2|A successful call to int execvp(const
    520|665 1 3538976 1 3|char *file, char *const argv[]) shall preserve
    520|665 1 3538976 1 4|interval timers across the call.
    520|665 1 25624600 1 1|PREP: Open communication pipe for child
    520|665 1 25624600 1 2|PREP: Fork child
    520|665 1 25624600 2 1|PREP: Wait for child
    520|665 1 25624600 2 2|PREP: Read child's ITIMER_REAL value
    520|665 1 25624600 2 3|TEST: ITIMER_REAL inherited after execvp
    520|665 1 25624600 2 4|PREP: Fork child
    520|665 1 12320791 1 1|PREP: Connect child's pipe to stdout
    520|665 1 12320791 1 2|PREP: Construct exec path
    520|665 1 12320791 1 3|PREP: Set ITIMER_REAL interval timer
    520|665 1 12320791 1 4|PREP: Issue execvp
    520|665 1 25624600 3 1|PREP: Wait for child
    520|665 1 25624600 3 2|PREP: Read child's ITIMER_VIRTUAL values
    520|665 1 25624600 3 3|TEST: ITIMER_VIRTUAL inherited after execvp
    520|665 1 25624600 3 4|ERROR: ITIMER_VIRTUAL not inherited correctly
    520|665 1 25624600 3 5| Expected it_interval.tv_sec = 1234567
    520|665 1 25624600 3 6| it_interval.tv_usec = 89
    520|665 1 25624600 3 7| it_value.tv_sec ~= 1234567
    520|665 1 25624600 3 8| Received it_interval.tv_sec = 1234567
    520|665 1 25624600 3 9| it_interval.tv_usec = 89
    520|665 1 25624600 3 10| it_value.tv_sec ~= 1234566
    520|665 1 12386327 1 1|PREP: Connect child's pipe to stdout
    520|665 1 12386327 1 2|PREP: Construct exec path
    520|665 1 12386327 1 3|PREP: Set ITIMER_VIRTUAL interval timer
    520|665 1 12386327 1 4|PREP: Issue execvp
    220|665 1 1 17:02:34|FAIL
    410|665 1 1 17:02:34|IC End
    80|683 0 17:02:34|TC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    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