[cairo] Unit testing? (PDF)
britten at caris.com
Fri May 22 09:46:19 PDT 2009
I'm looking to write some unit tests for my Cairo code (Producing PDF)
and was wondering if anyone had any suggestions/input?
As is usual for testing, you generate your current output and compare
it against a known-correct master version, looking for differences.
- I'm assuming I can't just do a binary comparison of the two PDF
files, eh? I'm not familiar with the PDF file format, and a lot of
it looks like it may be binary. However, I suspect there's meta
data in there (eg: creation date) that would interfere with a
straight file comparison.
- Similarly, from looking at the PDFs generated from Cairo, I don't
think any sort of selective line-by-line comparison would be
appropriate, would it?
- One possible approach might be to rasterize the files (somehow) and
compare the pixels (somehow). This might get past the meta-data
issue, but introduces a rasterization step that might trigger false
differences. Also, I don't know how fast that might be.
- I came across http://www.cairographics.org/renderpdf/, which seems
interesting. If I could load the PDF file back into a PDF Surface,
is there anything in Cairo that I could use? I didn't see a way
to test if two Surfaces are "the same", but maybe there is something
like that somewhere?
- Given that the Cairo unit tests basically just:
printf("Please check %s to ensure it looks/prints correctly")
I'm guessing there may not be an easy way to do this. :(
Is there a non-easy way? :P
Many thanks for any input, pointers, suggestions, etc!
More information about the cairo