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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1289 Actions


    Problem Report Number 1289
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0571
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-07-30 08:00
    Product Standard Internationalised Terminal Interfaces
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.0.2
    Test Identification xcurses/tparm 1
    Problem Summary TSD4U.00247 This test does not accomodate 64 bit implementations.
    Problem Text
    Here is the source code from CAPIxcurses/ftparm/[df]tparm.c:


    static void test1A(void)
    {
    ....

    tet_infoline("TEST: Pass '%%c' parameter");
    Test("%p1%s", (int)"Hello", 0, 0, 0, 0, "Hello");

    ....
    }

    static void
    Test(char *param_string, int p1, int p2, int p3, int p4, int p5, char
    *expected)
    {
    char *actual;

    actual = (char *)tparm(param_string, p1, p2, p3, p4, p5, 0 , 0, 0,
    0);
    ....
    }

    tparm() expects its second through tenth arguments to be "long". On
    our 64-bit implementations "long" is a larger type than "int", so
    tparm() can exhaust the stack and cause a segmentation violation if
    given "int" arguments.

    ---
    Note:

    A second deficiency becomes evident when this one is patched out. In:

    tet_infoline("TEST: Pass '%%~' parameter");
    Test("%p1%~%x", 0x0000f0f0, 0, 0, 0, 0, "ffff0f0f");

    The test is assuming that 0x0000f0f0 is the one's complement of
    0xffff0f0f. This will fail when a "long" is larger than 32 bits:

    520|1 1 1659 2 39|TEST: Pass '%%~' parameter
    520|1 1 1659 2 40|ERROR: tparm('%p1%~%x', 61680, 0, 0, 0, 0) Produced 'fffffffff
    fff0f0f' not 'ffff0f0f'
    220|1 1 1 10:57:33|FAIL
    Test Output
    0|1351 /tset/CAPIxcurses/ftparm/ftparm1 23:29:49|TC Start, scenario ref
    176-618
    15|1351 1.10 2|TCM Start
    400|1351 1 1 23:29:49|IC Start
    200|1351 1 23:29:49|TP Start
    520|1351 1 26885 1 1|SPEC1170TESTSUITE CASE 1
    520|1351 1 26885 1 2|A successful call to char *tparm(char *str, long int
    520|1351 1 26885 1 3|long int p1, long int p2, long int p3, long int p4,
    520|1351 1 26885 1 4|long int p5, long int p6, long int p7, long int p8,
    520|1351 1 26885 1 5|long int p9) shall retrieve the capability associated
    520|1351 1 26885 1 6|with the string pointed to by str, replace variables
    520|1351 1 26885 1 7|in the capability with the specified parameters, and
    520|1351 1 26885 1 8|return a pointer to the string with the parameters
    520|1351 1 26885 1 9|applied.
    520|1351 1 26886 1 1|DEBUG: Entering capi_xcurses/vt.c:avsinit_curses()
    520|1351 1 26886 1 2|DEBUG: Entering capi_xcurses/vt.c:basic_curses_init()
    520|1351 1 26886 1 3|PREP: Set test locale: xcurses
    520|1351 1 26886 1 4|DEBUG: Entering capi_xcurses/vt.c:avsstart_term()
    520|1351 1 26886 1 5|PREP: Set environment variables and open terminal connectio
    n
    520|1351 1 26886 1 6|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):cu
    rses_prep()
    520|1351 1 26886 1 7|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):op
    en_pty()
    520|1351 1 26886 1 8|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):ope
    n_pty()
    520|1351 1 26886 1 9|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):l_
    tty_init()
    520|1351 1 26886 1 10|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):l_
    tty_init()
    520|1351 1 26886 1 11|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):cu
    rses_prep()
    520|1351 1 26886 2 1|DEBUG: Exiting capi_xcurses/vt.c:avsstart_term()
    520|1351 1 26886 2 2|DEBUG: Entering capi_xcurses/vt.c:avsstart_curses()
    520|1351 1 26886 2 3|PREP: Call newterm
    520|1351 1 26886 2 4|DEBUG: Exiting capi_xcurses/vt.c:avsstart_curses()
    520|1351 1 26886 2 5|DEBUG: Exiting capi_xcurses/vt.c:basic_curses_init()
    520|1351 1 26886 2 6|PREP: Initialize color pairs
    520|1351 1 26886 2 7|DEBUG: Exiting capi_xcurses/vt.c:avsinit_curses()
    520|1351 1 26886 2 8|TEST: Pass '%%' parameter
    520|1351 1 26886 2 9|TEST: Pass '%%c' parameter
    520|1351 1 26886 2 10|TEST: Pass '%%s' parameter
    520|1351 1 26885 2 1|ERROR: TEST TERMINATED DUE TO SIGSEGV SIGNAL (11)
    220|1351 1 1 23:29:49|FAIL
    410|1351 1 1 23:29:49|IC 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 releases 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