aboutsummaryrefslogtreecommitdiffstats
path: root/libtests
AgeCommit message (Collapse)Author
2020-10-27Revert removal of unreadCh change for performanceJay Berkenbilt
Turns out unreadCh is much more efficient than seek(-1, SEEK_CUR). Update comments and code to reflect this.
2020-10-25Make libtests depend on qpdfJay Berkenbilt
We need to run qpdf --show-crypto.
2020-10-21Protect numeric conversion against user's locale (fixes #459)Jay Berkenbilt
2020-10-18Stop using InputSource::unreadChJay Berkenbilt
2020-10-16InputSource::unreadCh -- only unread most recently read characterJay Berkenbilt
This is all that ever worked. The test suite was trying to do something different from ClosedFileInputSource.
2020-04-10Use more references when iteratingJay Berkenbilt
When possible, use `for (auto&` or `for (auto const&` when iterating using C++-11 style iterators.
2020-04-06Delegate random number generation to crypto provider (fixes #418)Jay Berkenbilt
2020-04-05JSON: implement pattern keys in schemaJay Berkenbilt
2020-04-04Allow qpdf to be built on systems without wchar_t (fixes #406)Jay Berkenbilt
2020-02-18libtests/cxx11.cc: fix build with gcc 4.8Fabrice Fontaine
Build fails on gcc 4.8 since version 9.1.1 and commit 752416554086d5d34323bc14164d5084db83cfbd: libtests/cxx11.cc: In function 'void do_regex()': libtests/cxx11.cc:347:42: error: 'strlen' is not a member of 'std' std::cregex_iterator m3(str7, str7 + std::strlen(str7), expr4); ^ To fix the build failure, add missing include on cstring Fixes: - http://autobuild.buildroot.org/results/ad7fb68ae87850a85509eed80fd0cae8721b10c5 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-01-14Pull wmain -> main code from qpdf.cc into QUtil.ccJay Berkenbilt
2020-01-13QUtil::read_lines_from_file: optional EOL preservationJay Berkenbilt
2020-01-13Refactor QUtil::read_lines_from_fileJay Berkenbilt
This commit adds the preserve_eol flags but doesn't implement EOL preservation yet.
2020-01-13Add std::regex to c++11 feature testsJay Berkenbilt
2019-11-09Allow odd/even modifiers in numeric range (fixes #364)Jay Berkenbilt
2019-11-09Run libtests for crypto with all available providersJay Berkenbilt
If QPDF_CRYPTO_PROVIDER is set, just run the tests for the given provider. This is to support cases of running the entire test suite for each provider. If QPDF_CRYPTO_PROVIDER is not set, run the tests that exercise the cyrpto provider for each available provider.
2019-11-09Increase coverage for RC4 testingJay Berkenbilt
2019-11-09See if C++11 features workJay Berkenbilt
2019-09-17Don't assume char is signed in int conversion tests (fixes #361)Jay Berkenbilt
2019-08-31Add remove_file and rename_file to QUtilJay Berkenbilt
2019-08-31spell checkJay Berkenbilt
2019-08-30Add getRefcount to PointerHolder testJay Berkenbilt
2019-08-18SparseOHArrayJay Berkenbilt
2019-06-22Add QUtil::read_file_into_memoryJay Berkenbilt
This code was essentially duplicated between test_driver and standalone_fuzz_target_runner.
2019-06-22Convert remaining public classes to use Members patternJay Berkenbilt
Have classes contain only a single private member of type PointerHolder<Members>. This makes it safe to change the structure of the Members class without breaking binary compatibility. Many of the classes already follow this pattern quite successfully. This brings in the rest of the class that are part of the public API.
2019-06-22Add missing #include <cstring>Jay Berkenbilt
2019-06-21Fix bounds error in utf16_to_utf8 conversionJay Berkenbilt
2019-06-21Fix sign and conversion warnings (major)Jay Berkenbilt
This makes all integer type conversions that have potential data loss explicit with calls that do range checks and raise an exception. After this commit, qpdf builds with no warnings when -Wsign-conversion -Wconversion is used with gcc or clang or when -W3 -Wd4800 is used with MSVC. This significantly reduces the likelihood of potential crashes from bogus integer values. There are some parts of the code that take int when they should take size_t or an offset. Such places would make qpdf not support files with more than 2^31 of something that usually wouldn't be so large. In the event that such a file shows up and is valid, at least qpdf would raise an error in the right spot so the issue could be legitimately addressed rather than failing in some weird way because of a silent overflow condition.
2019-06-21QUtil: add unsigned int/string functionsJay Berkenbilt
2019-06-21New safe type converters in QIntCJay Berkenbilt
2019-03-11Fix json serialization for {x | -1 < x < 1} (fixes #308)Jay Berkenbilt
JSON serialization was preserving the value as presented, but JSON doesn't accept decimal values without a 0 before the decimal point.
2019-01-27Convert pages to form XObjectsJay Berkenbilt
Support conversion of pages to form XObjects and placement of form XObjects on pages.
2019-01-27Move rectangle transformation into QPDFMatrixJay Berkenbilt
2019-01-17Add QUtil::possible_repaired_encodingsJay Berkenbilt
2019-01-17Add status-reporting transcoders to QUtilJay Berkenbilt
2019-01-17QUtil::analyze_encodingJay Berkenbilt
2019-01-17Bidirectional transcoding for win, mac, pdf, utf8, utf16Jay Berkenbilt
2019-01-06Add WinAnsi and MacRoman encodingJay Berkenbilt
2019-01-06Refactor QUtil::utf8_to_asciiJay Berkenbilt
2019-01-04Add QUtil::utf8_to_asciiJay Berkenbilt
2019-01-01Add Matrix class under QPDFObjectHandleJay Berkenbilt
2019-01-01Transformation matrixJay Berkenbilt
2018-12-25JSON::serialize -> unparseJay Berkenbilt
Unparse is admittedly strange, but I'd rather be strange and consistent, and everything else in the qpdf library uses unparse to serialize. (If you're reading this, the convention of using "unparse" comes from the "clu" programming language.)
2018-12-22Move numrange code from qpdf.cc to QUtil.ccJay Berkenbilt
Also move tests to libtests.
2018-12-22Add simple JSON serializerJay Berkenbilt
2018-08-14New exception class QPDFSystemError (fixes #221)Jay Berkenbilt
2018-08-13Catch exceptions as const references (fixes #236)Jay Berkenbilt
This fix allows qpdf to compile/test cleanly with gcc 8.
2018-08-05ClosedFileInputSource: add method to keep file openJay Berkenbilt
During periods of intensive operation on a specific file, this method can reduce the overhead of repeated open/close operations.
2018-06-23Fix typoJay Berkenbilt
2018-06-22Windows test workaroundJay Berkenbilt