[cups.bugs] CUPS 1.4.7 IPP Compliance Test failure
Michael Sweet
msweet at apple.com
Tue Aug 28 08:44:38 PDT 2012
Jerry,
About all I can suggest trying is the following test program:
#include <stdio.h>
int main(void)
{
printf("\\n is %d\n", '\n');
printf("# is %d\n", '#');
return (0);
}
This *should* produce the following output:
\n is 10
# is 35
On Aug 22, 2012, at 5:58 PM, Jerry Fowler <jfowler at cerner.com> wrote:
> Michael,
>
> That's what has me stumped also, would you recommend that I check return codes on those calls to see if I am getting a bad status back?
>
> I'll double check but I don't think gcc is installed on either of my build machines. If I find that it is, one of my machines is isolated and I should be able to remove gcc over there and try again. I'll post the results of the investigation.
>
>> Jerry,
>>
>> The output doesn't make a whole lot of sense to me since line 4 is a comment ("Verify that the server ...") - almost like getc or ungetc are failing or you have mixed system/GCC headers?
>>
>>
>> On Aug 17, 2012, at 2:31 PM, Jerry Fowler <jfowler at cerner.com> wrote:
>>> 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
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>
> _______________________________________________
> 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