aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qtest
AgeCommit message (Collapse)Author
2013-06-15Handle more broken filesJay Berkenbilt
Space rather than newline after xref, missing /ID in trailer for encrypted file. This enables qpdf to handle some files that xpdf can handle. Adobe reader can't necessarily handle them.
2013-06-15Handle /Outlines dictionary being a direct objectJay Berkenbilt
Even though this case is not valid according to the spec, it has been seen, and caused an internal error.
2013-06-15Add optional /Length key in crypt filter dictionaryJay Berkenbilt
2013-06-14Bug fix: handle generation > 0 when generating object streamsJay Berkenbilt
Rework QPDFWriter to always track old object IDs and QPDFObjGen instead of int, thus not discarding the generation number. Switch to QPDF::getCompressibleObjGen() to properly handle the case of an old object eligible for compression that has a generation of other than zero.
2013-03-05Fix getTypeCode and getTypeName work for indirect objectsJay Berkenbilt
Remove const qualifier from getTypeCode and get getTypeName methods of QPDFObjectHandle, make them work properly for indirect objects, and exercise them much better in the test suite.
2013-03-05Add method to terminate content stream parsingJay Berkenbilt
2013-02-23Bug fix: properly handle overridden compressed objectsJay Berkenbilt
When caching objects in an object stream, only cache objects that still resolve to that stream. See Changelog mod from this commit for details.
2013-01-25Improve qpdf --checkJay Berkenbilt
Fix exit status for case of errors without warnings, continue after errors when possible, add test case for parsing a file with content stream errors on some but not all pages.
2013-01-23Cosmetic changes to be closer to Adobe terminologyJay Berkenbilt
Change object type Keyword to Operator, and place the order of the object types in object_type_e in the same order as they are mentioned in the PDF specification. Note that this change only breaks backward compatibility with code that has not yet been released.
2013-01-22Add getTypeCode() and getTypeName()Jay Berkenbilt
Add virtual methods to QPDFObject, wrappers to QPDFObjectHandle, and implementations to all the QPDF_Object types.
2013-01-20Add QPDFObjectHandle::parseContentStream methodJay Berkenbilt
This method allows parsing of the PDF objects in a content stream or array of content streams.
2012-12-31Update "C" API with functions for new featuresJay Berkenbilt
2012-12-31Remove /Crypt from stream filters unconditionallyJay Berkenbilt
When writing a new stream, always remove /Crypt even if we are not otherwise able to filter the stream.
2012-12-31Refactor Dictionary writing codeJay Berkenbilt
Original code was written before we could shallow copy objects, so all the filtering was done by suppressing the output of certain keys and replacing them with other keys. Now we can simplify the code greatly by modifying shallow copies of dictionaries in place.
2012-12-31Support for encryption with /V=5 and /R=5 and /R=6Jay Berkenbilt
Read and write support is implemented for /V=5 with /R=5 as well as /R=6. /R=5 is the deprecated encryption method used by Acrobat IX. /R=6 is the encryption method used by PDF 2.0 from ISO 32000-2.
2012-12-31Support files with only attachments encryptedJay Berkenbilt
Test cases added in a future commit since they depend on /R=6 support.
2012-12-31Add missing test case from long agoJay Berkenbilt
I noticed a test output file that was not accessed in the test suite and added a test case for it.
2012-12-31Add ExtensionLevel support to version handlingJay Berkenbilt
All version operations are now fully aware of extension levels.
2012-12-31Eliminate flattenScalarReferencesJay Berkenbilt
2012-12-27Reference object with zero offsetJay Berkenbilt
This file used to exercise a zero offset test case when qpdf would visit every object in the file. After the next commit, qpdf no longer touches unreferenced objects, so a reference had to be added to continue to have this file exercise the zero offset case.
2012-12-27Uncompress stream data for some linearization testsJay Berkenbilt
For linearization tests where we are actually comparing the exact output of the test with a known file, uncompress stream data so we can see what's there. This makes looking at future changes a little easier.
2012-12-25Find PDF header anywhere in the first 1024 bytesJay Berkenbilt
2012-11-20Ignore objects with offset 0Jay Berkenbilt
2012-09-23Allow reading from InputSource and writing to PipelineJay Berkenbilt
Allowing users to subclass InputSource and Pipeline to read and write from/to arbitrary sources provides the maximum flexibility for users who want to read and write from other than files or memory.
2012-09-06Add QPDFWriter::setExtraHeaderTextJay Berkenbilt
2012-09-06Fix segmentation fault with use of QPDFWriter::setOutputMemoryJay Berkenbilt
2012-08-11Add specially crafted test cases for EOF errorJay Berkenbilt
This replaces a PDF from the wild that I didn't want to include in the test suite but used to verify the original fix.
2012-07-29Fix spelling errorsJay Berkenbilt
2012-07-29Improve password handlingJay Berkenbilt
Use --encryption-file-password, if given, in addition to --password as a source for passwords for files specified in --pages.
2012-07-29Add QPDF_ to some variables used by the test suiteJay Berkenbilt
LARGE_FILE_TEST_PATH -> QPDF_LARGE_FILE_TEST_PATH SKIP_TEST_COMPARE_IMAGES -> QPDF_SKIP_TEST_COMPARE_IMAGES
2012-07-22Command-line page merging and splittingJay Berkenbilt
Implement --pages ... -- option for qpdf. Update TODO with remaining things to document.
2012-07-21Implement QPDFObjectHandle::parseJay Berkenbilt
Move object parsing code from QPDF to QPDFObjectHandle and parameterize the parts of it that are specific to a QPDF object. Provide a version that can't handle indirect objects and that can be called on an arbitrary string. A side effect of this change is that the offset used when reporting invalid stream length has changed, but since the new value seems like a better value than the old one, the test suite has been updated rather than making the code backward compatible. This only effects the offset reported for invalid streams that lack /Length or have an invalid /Length key. Updated some test code and exmaples to use QPDFObjectHandle::parse. Supporting changes include adding a BufferInputSource constructor that takes a string.
2012-07-16Add command line option to copy encryption from other fileJay Berkenbilt
Add --copy-encryption and --encryption-file-password options to qpdf. Also strengthen test suite for copying encryption. The strengthened test suite would have caught the failure to preserve AES and the failure to update the file version, which was invalidating the encrypted data.
2012-07-14Add public QPDFWriter::copyEncryptionParametersJay Berkenbilt
Method to copy encryption parameters from another file. Adapted from existing code to copy encryption parameters from the original file.
2012-07-14test_driver: accept optional second file nameJay Berkenbilt
This way we don't have to hard-code the name of a second file in the test driver for tests that require one.
2012-07-14Have QPDFWriter detect foreign objects while writingJay Berkenbilt
Throw an exception that directs the user to QPDF::copyForeignObject.
2012-07-11Support copying objects from another QPDF objectJay Berkenbilt
This includes QPDF::copyForeignObject and supporting foreign objects as arguments to addPage*.
2012-07-11Add concept of reserved objectsJay Berkenbilt
QPDFObjectHandle::{new,is,assert}Reserved, QPDF::replaceReserved provide a mechanism to add objects to a PDF file when there are circular references. This is a prerequisite to copying objects from one PDF to another.
2012-07-07Don't require stream data provider to know length in advanceJay Berkenbilt
Breaking API change: length parameter has disappeared from the StreamDataProvider version of QPDFObjectHandle::replaceStreamData since it is no longer necessary to compute it in advance. This breaking change is justified by the fact that removing the length parameter provides the caller an opportunity to simplify the calling code.
2012-07-05Added test code for Tobias's changesJay Berkenbilt
2012-06-24Increase padding in linearized filesJay Berkenbilt
With QPDF allowing integers to contain 64-bit quantities, this change is necessary to be able to linearize files whose sizes might be larger than 10 digits.
2012-06-24Fix and test support for files >= 4 GBJay Berkenbilt
2012-06-24Add test case for removing a page we don't haveJay Berkenbilt
2012-06-22Add QPDF::emptyPDF() and pdf_from_scratch test codeJay Berkenbilt
2012-06-21Add QPDFObjectHandle::shallowCopy()Jay Berkenbilt
2012-06-21Add additional page API test casesJay Berkenbilt
2012-06-21Add testing for page APIsJay Berkenbilt
2012-06-20Add testing for new array mutatorsJay Berkenbilt
2012-06-20Remove extraneous execute bitsJay Berkenbilt
2011-12-28Discard stderr from gs when comparing images.Jay Berkenbilt
This works around cases where gs falsely complains about things in the PDF files or gives warnings that don't harm the output. See comments in qpdf.test for details.