|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1456 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 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 EndReview 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:
- View Report 1456
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority