|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1133 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 1133.
Report 1133 Actions
Problem Report Number 1133 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0335 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published null Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSU version 5.0.2 Test Identification tset/CAPIxcurses/check_xloc 1,2 Problem Summary PG4U.00137 This request addresses an unsupported element of VSU that is not relevant to branding. Problem Text
There are mulitple problems for check_xloc.c. The fixes are provided
below. The first problem is subscripting typo in init_stuff for
nonspacing[2].string which should be nonspacing[1].string.
The second problem is not allocating a shared memory object for
an input buffer. A shared memory object needs to be allocated to
'Rdata *rdata;' because test number 2 in check_xloc will use it
(test2A() calls avsinit_xcurses(). avsinit_xcurses() calls
basic_curses_init(). basic_curses_init() calls avsstart_term().
avsstart_term() calls zerobuf(). zerobuf() accesses 'rdata'). The getbuf()
functions is defined in SRC/LIB/capi_xcurses/out.c. A getbuf() function needs
to be added to the init_stuff() function.
The third problem is in both test cases 1 and 2. There is a for loop
which at the beginning needs to initialize the buffer with a
spacing string "strcpy(buf, spacing[i].string);". The loop then
starts to concatentate non-spacing characters onto the buffer. The
second time through the loop the buf "buffer" has not been initialized
but still contains the original data for the previous test and will
just have more incorrect data concatenated onto buf.
The example of the problem would be through the loop (see code below)
for j = 1 and k = 1 buf would look like
spacing "1" non-spacing "4"
the next time through the loop with j = 2 and k = 1
spacing "1" non-spacing "4" non-spacing "4"
The sequence is wrong. The strcpy(buf, spacing[i].string) function
needs to be moved within the loop to initialize buf as described
in the fix below both for test 1 and 2.
diff -c check_xloc.c.org check_xloc.c
*** check_xloc.c.org Wed Apr 8 15:26:10 1998
--- check_xloc.c Wed Apr 8 18:06:32 1998
***************
*** 117,126 ****
spacing[1].string = mbspacing2;
spacing[2].string = mbspacing3;
nonspacing[0].string = mbnonspacing1;
! nonspacing[2].string = mbnonspacing2;
nonspacing[2].string = mbnonspacing3;
nonspacing[3].string = mbnonspacing4;
nonspacing[4].string = mbnonspacing5;
}
static void test1A(void)
--- 117,127 ----
spacing[1].string = mbspacing2;
spacing[2].string = mbspacing3;
nonspacing[0].string = mbnonspacing1;
! nonspacing[1].string = mbnonspacing2;
nonspacing[2].string = mbnonspacing3;
nonspacing[3].string = mbnonspacing4;
nonspacing[4].string = mbnonspacing5;
+ getbuf();
}
static void test1A(void)
***************
*** 159,166 ****
for (i = 0; i < 3; i++) {
memset(buf, 0, sizeof(buf));
memset(wch, 0, sizeof(wch));
- strcpy(buf, spacing[i].string);
for (j = 0; j < 6; j++) {
for (k = 0; k < j; k++)
strcat(buf, nonspacing[k].string);
if (j == 0)
--- 160,167 ----
for (i = 0; i < 3; i++) {
memset(buf, 0, sizeof(buf));
memset(wch, 0, sizeof(wch));
for (j = 0; j < 6; j++) {
+ strcpy(buf, spacing[i].string);
for (k = 0; k < j; k++)
strcat(buf, nonspacing[k].string);
if (j == 0)
***************
*** 227,234 ****
for (i = 0; i < 3; i++) {
memset(buf, 0, sizeof(buf));
memset(wch, 0, sizeof(wch));
- strcpy(buf, spacing[i].string);
for (j = 0; j < 6; j++) {
for (k = 0; k < j; k++)
strcat(buf, nonspacing[k].string);
if (j == 0)
--- 228,235 ----
for (i = 0; i < 3; i++) {
memset(buf, 0, sizeof(buf));
memset(wch, 0, sizeof(wch));
for (j = 0; j < 6; j++) {
+ strcpy(buf, spacing[i].string);
for (k = 0; k < j; k++)
strcat(buf, nonspacing[k].string);
if (j == 0)Test Output
10|1 /tset/CAPIxcurses/check_xloc/check_xloc 15:12:51|TC Start, scenario ref
885 0-1
15|1 1.10 2|TCM Start
400|1 1 1 15:12:51|IC Start
200|1 1 15:12:51|TP Start
520|1 1 26165 1 1|SPEC1170TESTSUITE CASE 1
520|1 1 26165 1 2|Set the test locale and use mbstowcs and setcchar
520|1 1 26165 1 3|to convert all the characters and required combinations
520|1 1 26165 1 4|of spacing and non-spacing characters to cchar_t's.
520|1 1 26165 1 5|TEST: Set test locale: xcurses
520|1 1 26165 1 6|TEST: mbspacing1
520|1 1 26165 1 7|TEST: mbspacing1 with mbnonspacing1
520|1 1 26165 1 8|unexpected signal 11 (SIGSEGV) received
220|1 1 2 15:12:51|UNRESOLVED
410|1 1 1 15:12:51|IC End
400|1 2 1 15:12:51|IC Start
200|1 2 15:12:51|TP Start
520|1 2 26165 1 1|SPEC1170TESTSUITE CASE 2
520|1 2 26165 1 2|Use add_wch to send all the characters and required
520|1 2 26165 1 3|combinations of spacing and non-spacing characters to
520|1 2 26165 1 4|to the terminal.
520|1 2 26165 1 5|PREP: Set test locale: xcurses
520|1 2 26165 1 6|PREP: Set environment variables and open terminal connection
520|1 2 26165 1 7|unexpected signal 11 (SIGSEGV) received
220|1 2 2 15:12:52|UNRESOLVED
410|1 2 1 15:12:52|IC End
80|1 0 15:12:52|TC End
Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We recommend this request be refused.
Per the VSU User's Guide Section 8.3.5 check_xloc is "not a supported
part of VSU and is not required for conformance". Thus a TSD is
not appropriate as there are no branding implications here.
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 1133
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority