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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0870 Actions


    Problem Report Number 0870
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0385
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1995-11-13 08:00
    Product Standard Commands and Utilities V2 (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSC version 4.1.5
    Test Identification POSIX.annexA/lex 53
    Problem Summary TSD4C.00126 This test may generate misleading output.
    Problem Text
    This test may generate misleading output.

    This test reads a number of lines from a file then sends
    them to a function for output to the test journal. On our system
    one of the lines read has the following general format

    YY_DECL char * yytext = yy_tbuf;

    The test assigns this line to a varaible called line. It then
    tries to send this to the journal via the command.

    JrnlMsg $line

    The shell does variable substitution which expands the command to

    JrnlMsg YY_DECL char * yytext = yy_tbuf;

    It then tries pathname expansion. Since the * matches everything
    in the current directory we get the unexpected output shown above.

    Since this contains information necessary to inspect and approve the
    output we feel a TSD should be granted.

    This problem also manifests itself with other less critical lines that
    also contain the string "yytext" (mostly comments containing "*" or
    beginning with "/*" which expands to all files in the root directory).

    If the JrnlMsg line is changed to

    JrnlMsg "$line"

    this behavior should not occur.

    The same problem applies to test 52.
    Test Output
    200|1 1 11:02:11|TP Start
    520|1 1 2359300 1 1|Assertion #53 (C): Test the %pointer semantic and yytext ty
    520|1 1 2359300 1 2| <LC> ping
    520|1 1 2359300 1 11|the following lines are grep'ed from lex.yy.c
    520|1 1 2359300 1 12|#define YYECHO fputs(yytext, yyout)
    520|1 1 2359300 1 13|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
    520|1 1 2359300 1 14| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
    520|1 1 2359300 1 15| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
    520|1 1 2359300 1 16| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
    520|1 1 2359300 1 17| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
    520|1 1 2359300 1 18| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
    520|1 1 2359300 1 19| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
    520|1 1 2359300 1 20| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
    520|1 1 2359300 1 21| <LC> tmpres tet_xres If %array is used (or defaulted), y
    520|1 1 2359300 1 22| <LC> ytext[] contains the token.
    520|1 1 2359300 1 23|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
    520|1 1 2359300 1 24| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
    520|1 1 2359300 1 25| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
    520|1 1 2359300 1 26| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
    520|1 1 2359300 1 27| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
    520|1 1 2359300 1 28| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
    520|1 1 2359300 1 29| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
    520|1 1 2359300 1 30| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
    520|1 1 2359300 1 31| <LC> tmpres tet_xres If %pointer is used, yytext is a po
    520|1 1 2359300 1 32| <LC> inter to yy_tbuf[].
    520|1 1 2359300 1 33|YY_DECL char CEEDUMP.19951101.113741.238485523 CEEDUMP.199
    520|1 1 2359300 1 34| <LC> 51101.115532.158203918 lex.ex lex.sh lex.yy.c lex.y
    520|1 1 2359300 1 35| <LC> y.o lex_eso_51_1 lex_in_51_1 lex_in_51_2 lex_in_51_
    520|1 1 2359300 1 36| <LC> 3 lex_in_53_1 lex_out_53_1 lex_prog_11_1.o lex_prog
    520|1 1 2359300 1 37| <LC> _6_1.o lex_prog_6_2.o lex_prog_7_1.o lex_prog_7_2.o
    520|1 1 2359300 1 38| <LC> lex_prog_7_3.o makefile out.stderr out.stdout tet1
    520|1 1 2359300 1 39| <LC> .139132955 tet1.139395099 tet1.200015875 tet1.20014
    520|1 1 2359300 1 40| <LC> 6947 tet_deletes tet_lock tet_stderr tet_tests tet_
    520|1 1 2359300 1 41| <LC> tmpfiles tet_tmpres tet_xres yytext = yy_tbuf;
    520|1 1 2359300 1 42|/bin /dev /etc /lib /samples /tmp /u /usr yy_sbuf[0:yyleng
    520|1 1 2359300 1 43| <LC> -1] contains the states corresponding to yytext.
    520|1 1 2359300 1 44|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
    520|1 1 2359300 1 45| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
    520|1 1 2359300 1 46| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
    520|1 1 2359300 1 47| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
    520|1 1 2359300 1 48| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
    520|1 1 2359300 1 49| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
    520|1 1 2359300 1 50| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
    520|1 1 2359300 1 51| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
    520|1 1 2359300 1 52| <LC> tmpres tet_xres yytext[0:yyleng-1] contains the cur
    520|1 1 2359300 1 53| <LC> rent token.
    520|1 1 2359300 1 54|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
    520|1 1 2359300 1 55| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
    520|1 1 2359300 1 56| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
    520|1 1 2359300 1 57| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
    520|1 1 2359300 1 58| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
    520|1 1 2359300 1 59| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
    520|1 1 2359300 1 60| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
    520|1 1 2359300 1 61| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
    520|1 1 2359300 1 62| <LC> tmpres tet_xres yytext[yyleng:yy_end-1] contains pu
    520|1 1 2359300 1 63| <LC> shed-back characters.
    520|1 1 2359300 1 64|CEEDUMP.19951101.113741.238485523 CEEDUMP.19951101.115532.
    520|1 1 2359300 1 65| <LC> 158203918 lex.ex lex.sh lex.yy.c lex.yy.o lex_eso_5
    520|1 1 2359300 1 66| <LC> 1_1 lex_in_51_1 lex_in_51_2 lex_in_51_3 lex_in_53_1
    520|1 1 2359300 1 67| <LC> lex_out_53_1 lex_prog_11_1.o lex_prog_6_1.o lex_pr
    520|1 1 2359300 1 68| <LC> og_6_2.o lex_prog_7_1.o lex_prog_7_2.o lex_prog_7_3
    520|1 1 2359300 1 69| <LC> .o makefile out.stderr out.stdout tet1.139132955 te
    520|1 1 2359300 1 70| <LC> t1.139395099 tet1.200015875 tet1.200146947 tet_dele
    520|1 1 2359300 1 71| <LC> tes tet_lock tet_stderr tet_tests tet_tmpfiles tet_
    520|1 1 2359300 1 72| <LC> tmpres tet_xres yy_save contains yytext[yyleng], wh
    520|1 1 2359300 1 73| <LC> ich is set to '\0'.
    520|1 1 2359300 1 74|YY_DECL int yyleng = 0; /bin /dev /etc /lib /samples /tmp
    520|1 1 2359300 1 75| <LC> /u /usr yytext token length tet_lock/
    520|1 1 2359300 1 76|static char yy_save; /bin /dev /etc /lib /samples /tmp /u
    520|1 1 2359300 1 77| <LC> /usr saved yytext[yyleng] tet_lock/
    520|1 1 2359300 1 78|#define YY_USER { /bin /dev /etc /lib /samples /tmp /u /us
    520|1 1 2359300 1 79| <LC> r set up yytext for user tet_lock/ \
    520|1 1 2359300 1 80|yy_save = yytext[yyleng]; \
    520|1 1 2359300 1 81|yytext[yyleng] = 0; \
    520|1 1 2359300 1 82|#define YY_SCANNER { /bin /dev /etc /lib /samples /tmp /u
    520|1 1 2359300 1 83| <LC> /usr set up yytext for scanner tet_lock/ \
    520|1 1 2359300 1 84|yytext[yyleng] = yy_save; \
    520|1 1 2359300 1 85|#else /bin /dev /etc /lib /samples /tmp /u /usr not-so eff
    520|1 1 2359300 1 86| <LC> icient push-back for yytext mungers tet_lock/
    520|1 1 2359300 1 87|memmove(yy_push, yytext+yyleng, n); \
    520|1 1 2359300 1 88|yytext[yyleng] = 0; \
    520|1 1 2359300 1 89|memmove(yytext+yyleng, yy_push, n); \
    520|1 1 2359300 1 90|yy_lastc = yytext[i-1];
    520|1 1 2359300 1 91|if (yytext[--i] == YYNEWLINE)
    520|1 1 2359300 1 92|memmove(yytext, yytext+yyleng, (size_t) yy_end);
    520|1 1 2359300 1 93|c = yytext[i]; /bin /dev /etc /lib /samples /tmp /u /usr g
    520|1 1 2359300 1 94| <LC> et pushback char tet_lock/
    520|1 1 2359300 1 95|yytext[i] = (char) c;
    520|1 1 2359300 1 96|output(yytext[yyoldi]);
    520|1 1 2359300 1 97|i = yyoleng; /bin /dev /etc /lib /samples /tmp /u /usr res
    520|1 1 2359300 1 98| <LC> tore original yytext tet_lock/
    520|1 1 2359300 1 99|goto yy_search; /bin /dev /etc /lib /samples /tmp /u /usr
    520|1 1 2359300 1 100| <LC> try shorter yytext tet_lock/
    520|1 1 2359300 1 101|yy_lastc = yytext[i-1];
    520|1 1 2359300 1 102|(void) memcpy(p->savetext, yytext, sizeof yytext);
    520|1 1 2359300 1 103|(void) memcpy(yytext, p->savetext, sizeof yytext);
    520|1 1 2359300 1 104|memmove(yytext+yyleng, yytext+yyleng+1,
    520|1 1 2359300 1 105|yytext[yyleng] = yy_save;
    520|1 1 2359300 1 106|memmove(yytext+yyleng+1, yytext+yyleng,
    520|1 1 2359300 1 107|yytext[yyleng] = 0;
    520|1 1 2359300 1 108|inspect journal to ensure that yytext is declared as a po
    520|1 1 2359300 1 109| <LC> inter to type char
    220|1 1 102 11:07:59|INSPECT

    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