]>
git.ipfire.org Git - thirdparty/cups.git/blob - cups/testfile.c
2 * "$Id: testfile.c 6649 2007-07-11 21:46:42Z mike $"
4 * File test program for the Common UNIX Printing System (CUPS).
6 * Copyright 2007 by Apple Inc.
7 * Copyright 1997-2007 by Easy Software Products.
9 * These coded instructions, statements, and computer programs are the
10 * property of Apple Inc. and are protected by Federal copyright
11 * law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 * which should have been included with this file. If this file is
13 * file is missing or damaged, see the license at "http://www.cups.org/".
15 * This file is subject to the Apple OS-Developed Software exception.
19 * main() - Main entry.
23 * Include necessary headers...
35 #endif /* HAVE_LIBZ */
42 static int read_write_tests(int compression
);
46 * 'main()' - Main entry.
49 int /* O - Exit status */
50 main(int argc
, /* I - Number of command-line arguments */
51 char *argv
[]) /* I - Command-line arguments */
53 int status
; /* Exit status */
54 char filename
[1024]; /* Filename buffer */
60 * Do uncompressed file tests...
63 status
= read_write_tests(0);
67 * Do compressed file tests...
72 status
+= read_write_tests(1);
73 #endif /* HAVE_LIBZ */
76 * Test path functions...
79 fputs("cupsFileFind: ", stdout
);
81 if (cupsFileFind("notepad.exe", "C:/WINDOWS", 1, filename
, sizeof(filename
)) &&
82 cupsFileFind("notepad.exe", "C:/WINDOWS;C:/WINDOWS/SYSTEM32", 1, filename
, sizeof(filename
)))
84 if (cupsFileFind("cat", "/bin", 1, filename
, sizeof(filename
)) &&
85 cupsFileFind("cat", "/bin:/usr/bin", 1, filename
, sizeof(filename
)))
87 printf("PASS (%s)\n", filename
);
95 * Summarize the results and return...
99 puts("\nALL TESTS PASSED!");
101 printf("\n%d TEST(S) FAILED!\n", status
);
106 * Cat the filename on the command-line...
109 cups_file_t
*fp
; /* File pointer */
110 char line
[1024]; /* Line from file */
113 if ((fp
= cupsFileOpen(argv
[1], "r")) == NULL
)
122 while (cupsFileGets(fp
, line
, sizeof(line
)))
125 if (!cupsFileEOF(fp
))
137 * 'read_write_tests()' - Perform read/write tests.
140 static int /* O - Status */
141 read_write_tests(int compression
) /* I - Use compression? */
143 int i
; /* Looping var */
144 cups_file_t
*fp
; /* First file */
145 int status
; /* Exit status */
146 char line
[1024], /* Line from file */
147 *value
; /* Directive value from line */
148 int linenum
; /* Line number */
149 unsigned char readbuf
[8192], /* Read buffer */
150 writebuf
[8192]; /* Write buffer */
151 int byte
; /* Byte from file */
155 * No errors so far...
161 * Initialize the write buffer with random data...
165 srand((unsigned)time(NULL
));
170 for (i
= 0; i
< (int)sizeof(writebuf
); i
++)
171 writebuf
[i
] = rand();
174 * cupsFileOpen(write)
177 printf("cupsFileOpen(write%s): ", compression
? " compressed" : "");
179 fp
= cupsFileOpen(compression
? "testfile.dat.gz" : "testfile.dat",
180 compression
? "w9" : "w");
186 * cupsFileCompression()
189 fputs("cupsFileCompression(): ", stdout
);
191 if (cupsFileCompression(fp
) == compression
)
195 printf("FAIL (Got %d, expected %d)\n", cupsFileCompression(fp
),
204 fputs("cupsFilePuts(): ", stdout
);
206 if (cupsFilePuts(fp
, "# Hello, World\n") > 0)
210 printf("FAIL (%s)\n", strerror(errno
));
218 fputs("cupsFilePrintf(): ", stdout
);
220 for (i
= 0; i
< 1000; i
++)
221 if (cupsFilePrintf(fp
, "TestLine %d\n", i
) < 0)
228 printf("FAIL (%s)\n", strerror(errno
));
236 fputs("cupsFilePutChar(): ", stdout
);
238 for (i
= 0; i
< 256; i
++)
239 if (cupsFilePutChar(fp
, i
) < 0)
246 printf("FAIL (%s)\n", strerror(errno
));
254 fputs("cupsFileWrite(): ", stdout
);
256 for (i
= 0; i
< 100; i
++)
257 if (cupsFileWrite(fp
, (char *)writebuf
, sizeof(writebuf
)) < 0)
264 printf("FAIL (%s)\n", strerror(errno
));
272 fputs("cupsFileClose(): ", stdout
);
274 if (!cupsFileClose(fp
))
278 printf("FAIL (%s)\n", strerror(errno
));
284 printf("FAIL (%s)\n", strerror(errno
));
292 fputs("cupsFileOpen(read): ", stdout
);
294 fp
= cupsFileOpen(compression
? "testfile.dat.gz" : "testfile.dat", "r");
303 fputs("cupsFileGets(): ", stdout
);
305 if (cupsFileGets(fp
, line
, sizeof(line
)))
311 printf("FAIL (Got line \"%s\", expected comment line)\n", line
);
317 printf("FAIL (%s)\n", strerror(errno
));
322 * cupsFileCompression()
325 fputs("cupsFileCompression(): ", stdout
);
327 if (cupsFileCompression(fp
) == compression
)
331 printf("FAIL (Got %d, expected %d)\n", cupsFileCompression(fp
),
342 fputs("cupsFileGetConf(): ", stdout
);
344 for (i
= 0; i
< 1000; i
++)
345 if (!cupsFileGetConf(fp
, line
, sizeof(line
), &value
, &linenum
))
347 else if (strcasecmp(line
, "TestLine") || !value
|| atoi(value
) != i
||
355 printf("FAIL (Line %d, directive \"%s\", value \"%s\")\n", linenum
,
356 line
, value
? value
: "(null)");
361 printf("FAIL (%s)\n", strerror(errno
));
369 fputs("cupsFileGetChar(): ", stdout
);
372 puts("\ni byte\n----- -----");
374 for (i
= 0; i
< 256; i
++)
376 byte
= cupsFileGetChar(fp
);
378 printf("%-5d %-5d\n", i
, byte
);
384 for (i
= 0; i
< 256; i
++)
385 if ((byte
= cupsFileGetChar(fp
)) != i
)
393 printf("FAIL (Got %d, expected %d)\n", byte
, i
);
398 printf("FAIL (%s)\n", strerror(errno
));
406 fputs("cupsFileRead(): ", stdout
);
408 for (i
= 0; i
< 100; i
++)
409 if ((byte
= cupsFileRead(fp
, (char *)readbuf
, sizeof(readbuf
))) < 0)
411 else if (memcmp(readbuf
, writebuf
, sizeof(readbuf
)))
418 printf("FAIL (Pass %d, ", i
);
420 for (i
= 0; i
< (int)sizeof(readbuf
); i
++)
421 if (readbuf
[i
] != writebuf
[i
])
424 printf("match failed at offset %d - got %02X, expected %02X)\n",
425 i
, readbuf
[i
], writebuf
[i
]);
429 printf("FAIL (%s)\n", strerror(errno
));
437 fputs("cupsFileClose(): ", stdout
);
439 if (!cupsFileClose(fp
))
443 printf("FAIL (%s)\n", strerror(errno
));
449 printf("FAIL (%s)\n", strerror(errno
));
454 * Return the test status...
462 * End of "$Id: testfile.c 6649 2007-07-11 21:46:42Z mike $".