]>
git.ipfire.org Git - thirdparty/cups.git/blob - cups/testpwg.c
4 * PWG test program for CUPS.
6 * Copyright 2009-2010 by Apple Inc.
8 * These coded instructions, statements, and computer programs are the
9 * property of Apple Inc. and are protected by Federal copyright
10 * law. Distribution and use rights are outlined in the file "LICENSE.txt"
11 * which should have been included with this file. If this file is
12 * file is missing or damaged, see the license at "http://www.cups.org/".
14 * This file is subject to the Apple OS-Developed Software exception.
18 * main() - Main entry.
19 * test_pwg() - Test the PWG mapping functions.
23 * Include necessary headers...
26 #include "ppd-private.h"
33 static int test_pwg(_pwg_t
*pwg
);
37 * 'main()' - Main entry.
40 int /* O - Exit status */
41 main(int argc
, /* I - Number of command-line args */
42 char *argv
[]) /* I - Command-line arguments */
44 int status
; /* Status of tests (0 = success, 1 = fail) */
45 const char *ppdfile
; /* PPD filename */
46 ppd_file_t
*ppd
; /* PPD file */
47 _pwg_t
*pwg
; /* PWG mapping data */
48 _pwg_media_t
*pwgmedia
; /* PWG media size */
55 puts("Usage: ./testpwg filename.ppd");
61 printf("ppdOpenFile(%s): ", ppdfile
);
62 if ((ppd
= ppdOpenFile(ppdfile
)) == NULL
)
64 ppd_status_t err
; /* Last error in file */
65 int line
; /* Line number in file */
68 err
= ppdLastError(&line
);
70 printf("FAIL (%s on line %d)\n", ppdErrorString(err
), line
);
77 fputs("_pwgCreateWithPPD(ppd): ", stdout
);
78 if ((pwg
= _pwgCreateWithPPD(ppd
)) == NULL
)
86 status
+= test_pwg(pwg
);
89 * _pwgDestroy should never fail...
92 fputs("_pwgDestroy(pwg): ", stdout
);
97 fputs("_pwgMediaForPWG(\"iso_a4_210x297mm\"): ", stdout
);
98 if ((pwgmedia
= _pwgMediaForPWG("iso_a4_210x297mm")) == NULL
)
100 puts("FAIL (not found)");
103 else if (strcmp(pwgmedia
->pwg
, "iso_a4_210x297mm"))
105 printf("FAIL (%s)\n", pwgmedia
->pwg
);
108 else if (pwgmedia
->width
!= 21000 || pwgmedia
->length
!= 29700)
110 printf("FAIL (%dx%d)\n", pwgmedia
->width
, pwgmedia
->length
);
116 fputs("_pwgMediaForLegacy(\"na-letter\"): ", stdout
);
117 if ((pwgmedia
= _pwgMediaForLegacy("na-letter")) == NULL
)
119 puts("FAIL (not found)");
122 else if (strcmp(pwgmedia
->pwg
, "na_letter_8.5x11in"))
124 printf("FAIL (%s)\n", pwgmedia
->pwg
);
127 else if (pwgmedia
->width
!= 21590 || pwgmedia
->length
!= 27940)
129 printf("FAIL (%dx%d)\n", pwgmedia
->width
, pwgmedia
->length
);
135 fputs("_pwgMediaForPPD(\"4x6\"): ", stdout
);
136 if ((pwgmedia
= _pwgMediaForPPD("4x6")) == NULL
)
138 puts("FAIL (not found)");
141 else if (strcmp(pwgmedia
->pwg
, "na_index-4x6_4x6in"))
143 printf("FAIL (%s)\n", pwgmedia
->pwg
);
146 else if (pwgmedia
->width
!= 10160 || pwgmedia
->length
!= 15240)
148 printf("FAIL (%dx%d)\n", pwgmedia
->width
, pwgmedia
->length
);
154 fputs("_pwgMediaForPPD(\"10x15cm\"): ", stdout
);
155 if ((pwgmedia
= _pwgMediaForPPD("10x15cm")) == NULL
)
157 puts("FAIL (not found)");
160 else if (strcmp(pwgmedia
->pwg
, "om_100x150mm_100x150mm"))
162 printf("FAIL (%s)\n", pwgmedia
->pwg
);
165 else if (pwgmedia
->width
!= 10000 || pwgmedia
->length
!= 15000)
167 printf("FAIL (%dx%d)\n", pwgmedia
->width
, pwgmedia
->length
);
173 fputs("_pwgMediaForPPD(\"Custom.10x15cm\"): ", stdout
);
174 if ((pwgmedia
= _pwgMediaForPPD("Custom.10x15cm")) == NULL
)
176 puts("FAIL (not found)");
179 else if (strcmp(pwgmedia
->pwg
, "custom_10x15cm_100x150mm"))
181 printf("FAIL (%s)\n", pwgmedia
->pwg
);
184 else if (pwgmedia
->width
!= 10000 || pwgmedia
->length
!= 15000)
186 printf("FAIL (%dx%d)\n", pwgmedia
->width
, pwgmedia
->length
);
192 fputs("_pwgMediaForSize(29700, 42000): ", stdout
);
193 if ((pwgmedia
= _pwgMediaForSize(29700, 42000)) == NULL
)
195 puts("FAIL (not found)");
198 else if (strcmp(pwgmedia
->pwg
, "iso_a3_297x420mm"))
200 printf("FAIL (%s)\n", pwgmedia
->pwg
);
211 * 'test_pwg()' - Test the PWG mapping functions.
214 static int /* O - 1 on failure, 0 on success */
215 test_pwg(_pwg_t
*pwg
) /* I - PWG mapping data */
217 int i
, /* Looping var */
218 status
= 0; /* Return status */
219 _pwg_t
*pwg2
; /* Loaded data */
220 _pwg_size_t
*size
, /* Size from original */
221 *size2
; /* Size from saved */
222 _pwg_map_t
*map
, /* Map from original */
223 *map2
; /* Map from saved */
227 * Verify that we can write and read back the same data...
230 fputs("_pwgWriteFile(test.pwg): ", stdout
);
231 if (!_pwgWriteFile(pwg
, "test.pwg"))
239 fputs("_pwgCreateWithFile(test.pwg): ", stdout
);
240 if ((pwg2
= _pwgCreateWithFile("test.pwg")) == NULL
)
247 if (pwg2
->num_sizes
!= pwg
->num_sizes
)
252 printf(" SAVED num_sizes=%d, ORIG num_sizes=%d\n", pwg2
->num_sizes
,
259 for (i
= pwg
->num_sizes
, size
= pwg
->sizes
, size2
= pwg2
->sizes
;
261 i
--, size
++, size2
++)
263 if (strcmp(size2
->map
.pwg
, size
->map
.pwg
) ||
264 strcmp(size2
->map
.ppd
, size
->map
.ppd
) ||
265 size2
->width
!= size
->width
||
266 size2
->length
!= size
->length
||
267 size2
->left
!= size
->left
||
268 size2
->bottom
!= size
->bottom
||
269 size2
->right
!= size
->right
||
270 size2
->top
!= size
->top
)
275 if (strcmp(size
->map
.pwg
, size2
->map
.pwg
))
276 printf(" SAVED size->map.pwg=\"%s\", ORIG "
277 "size->map.pwg=\"%s\"\n", size2
->map
.pwg
, size
->map
.pwg
);
279 if (strcmp(size2
->map
.ppd
, size
->map
.ppd
))
280 printf(" SAVED size->map.ppd=\"%s\", ORIG "
281 "size->map.ppd=\"%s\"\n", size2
->map
.ppd
, size
->map
.ppd
);
283 if (size2
->width
!= size
->width
)
284 printf(" SAVED size->width=%d, ORIG size->width=%d\n",
285 size2
->width
, size
->width
);
287 if (size2
->length
!= size
->length
)
288 printf(" SAVED size->length=%d, ORIG size->length=%d\n",
289 size2
->length
, size
->length
);
291 if (size2
->left
!= size
->left
)
292 printf(" SAVED size->left=%d, ORIG size->left=%d\n",
293 size2
->left
, size
->left
);
295 if (size2
->bottom
!= size
->bottom
)
296 printf(" SAVED size->bottom=%d, ORIG size->bottom=%d\n",
297 size2
->bottom
, size
->bottom
);
299 if (size2
->right
!= size
->right
)
300 printf(" SAVED size->right=%d, ORIG size->right=%d\n",
301 size2
->right
, size
->right
);
303 if (size2
->top
!= size
->top
)
304 printf(" SAVED size->top=%d, ORIG size->top=%d\n",
305 size2
->top
, size
->top
);
312 for (i
= pwg
->num_sources
, map
= pwg
->sources
, map2
= pwg2
->sources
;
314 i
--, map
++, map2
++)
316 if (strcmp(map2
->pwg
, map
->pwg
) ||
317 strcmp(map2
->ppd
, map
->ppd
))
322 if (strcmp(map
->pwg
, map2
->pwg
))
323 printf(" SAVED source->pwg=\"%s\", ORIG source->pwg=\"%s\"\n",
324 map2
->pwg
, map
->pwg
);
326 if (strcmp(map2
->ppd
, map
->ppd
))
327 printf(" SAVED source->ppd=\"%s\", ORIG source->ppd=\"%s\"\n",
328 map2
->ppd
, map
->ppd
);
335 for (i
= pwg
->num_types
, map
= pwg
->types
, map2
= pwg2
->types
;
337 i
--, map
++, map2
++)
339 if (strcmp(map2
->pwg
, map
->pwg
) ||
340 strcmp(map2
->ppd
, map
->ppd
))
345 if (strcmp(map
->pwg
, map2
->pwg
))
346 printf(" SAVED type->pwg=\"%s\", ORIG type->pwg=\"%s\"\n",
347 map2
->pwg
, map
->pwg
);
349 if (strcmp(map2
->ppd
, map
->ppd
))
350 printf(" SAVED type->ppd=\"%s\", ORIG type->ppd=\"%s\"\n",
351 map2
->ppd
, map
->ppd
);