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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1133 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 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:

     

    Back   


Contact the Certification Authority