CUPS 1.4.7 IPP Compliance Test failure

Jerry Fowler jfowler at cerner.com
Fri Aug 17 11:31:54 PDT 2012


Currently architecture where this is failing is POWER 5.  I have two machines where I am getting the same result.  I have narrowed it down a bit by adding printf statements at certain places in ipptest.c.

When I run ipptest.c on the HP-UX platform with these changes I get the following behavior:

Running IPP compliance tests...
Performing 4.1-requests.test...
"4.1-requests.test":
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
Comment, got new line
WS delim txt, ungetting ch = {
WS space or comment, ch =

Results from first get_token call - token = {, linenum = 10

When I run the same mods on AIX I get the following:

Running IPP compliance tests...
Performing 4.1-requests.test...
"4.1-requests.test":
Comment, got new line
Comment, got new line
Comment, got new line
WS delim txt, ungetting ch = a
WS space or comment, ch =

Results from first get_token call - token = attributes-natural-language, linenum = 4
Unexpected token attributes-natural-language seen on line 4 - aborting test!

Here is an excerpt from the modified version of ipptest.c (get_token function):

    if (ch == EOF)
    {
      printf("EOF reached \n");
      return (NULL);
    }
    else if (ch == '\'' || ch == '\"')
    {
     /*
      * Quoted text...
      */

      quote  = ch;
      bufptr = buf;
      bufend = buf + buflen - 1;

      while ((ch = getc(fp)) != EOF)
        if (ch == quote)
          break;
        else if (bufptr < bufend)
          *bufptr++ = ch;

      *bufptr = '\0';
      return (buf);
    }
    else if (ch == '#')
    {
     /*
      * Comment...
      */

      while ((ch = getc(fp)) != EOF)
        if (ch == '\n')
        {
          printf("Comment, got new line \n");
          break;
        }

      (*linenum) ++;
    }
    else
    {
     /*
     /*
      * Whitespace delimited text...
      */

      printf("WS delim txt, ungetting ch = %c \n", ch);
      ungetc(ch, fp);

      bufptr = buf;
      bufend = buf + buflen - 1;

      while ((ch = getc(fp)) != EOF)
        if (isspace(ch) || ch == '#')
        {
          printf("WS space or comment, ch = %c \n", ch);
          break;
        }
        else if (bufptr < bufend)
          *bufptr++ = ch;

      if (ch == '#')
        ungetc(ch, fp);

      *bufptr = '\0';
      return (buf);
    }
  }
}


> What architecture are you running on? Power or ???
>
>
> On Aug 9, 2012, at 12:14 PM, Jerry Fowler <jfowler at cerner.com> wrote:
>
> >> It also appears that there are multiple places in the ipptest.c code where the message "Unexpected token" can be generated.
> >
> > Correction: it appears that the get_token function in ipptest.c is not recognizing the entire comment statement.
> >
> > The first 10 lines of 4.1-requests.test are as follows (with line numbers):
> >
> >     1  #
> >     2  # "$Id: 4.1-requests.test 8235 2009-01-13 00:55:16Z mike $"
> >     3  #
> >     4  #   Verify that the server requires the following attributes:
> >     5  #
> >     6  #       attributes-charset
> >     7  #       attributes-natural-language
> >     8  #       printer-uri/job-uri
> >     9  #
> >    10  {
> >
> > Even though the message from the test indicates:
> >
> > "4.1-requests.test":
> > Unexpected token attributes-natural-language seen on line 4 - aborting test!
> >
> > I suspect that there is some bug in this function for the AIX platform at least that is causing it not to recognize line 7 as a comment and storing the "attributes-natural-language" at the first part of token buffer and causing the get_token to throw it out as the first character of token must be a left brace.
> >
> > Does that make sense?
> > _______________________________________________
> > cups-bugs mailing list
> > cups-bugs at easysw.com
> > http://lists.easysw.com/mailman/listinfo/cups-bugs
>
> _________________________________________________________
> Michael Sweet, Senior Printing System Engineer, PWG Chair
>





More information about the cups mailing list