* Add a --colour flag to pcre2test to colourise the output.
* Comments from the inputfile are in grey (but not those entered in
interactively)
* All other input is in green
* Messages related to PCRE2 api errors are in magenta
* Messages related to errors with using pcre2test itself are in red
* Timing and memory usage information is in blue
* Normal output is in your terminal's default foreground colour
---------
Co-authored-by: Nicholas Wilson <nicholas@nicholaswilson.me.uk>
- Add maint/RunCoverage script to allow gathering Clang coverage locally more easily
- Add LCOV exclusion comments to unreachable code
- Add a filtering script so that the CI job respects LCOV_EXCL_* comments
pcre2_config: add PCRE2_CONFIG_EFFECTIVE_LINKSIZE
PCRE2_CONFIG_LINKSIZE can be used to determine the linksize that the
library was configured to use, but the actual size (and therefore
the maximum size of patterns that can be processed) is not visible.
Add PCRE2_CONFIG_EFFECTIVE_LINKSIZE to gather that value and use it
in `pcre2test` for reporting `linksize`; move the logic to derive
one from the other out of the API documentation and test scripts to
improve maintainability and while at it enable test8 in Windows for
all link sizes.
Fixes to enable the code to build with a simple `CC=xlc ./configure --enable-ebcdic --disable-unicode`.
Fixes to the tests, so that `make check` passes on EBCDIC platforms.
Add a CI job to do z/OS testing.
An additional testing argument, `-malloc` is added to pcre2test and to RunTest.
The ManyConfig tests run this now in CI.
We exercise each malloc failure in the core code by counting how many mallocs are done, then repeating compilation and matching with a failure on each successive malloc.
The pcre2test utility needs quite a few changes to accommodate this.
It is simpler to add a new mode to it, than to make it fully
EBCDIC-native. On an ASCII system, pcre2test performs ASCII I/O, but
tranlates the input when passing it to the fully-EBCDIC-supporting
library.
Also fix a few minor portability issues.
- The unix "MSYS" environment has an usual (but sane) French locale,
requiring a test update
- pcre2grep needs a fix to use the WIN32 when both WIN32 and sys/stat.h
are available
Fixes#127
Fixes#564
The previous API was not extensible to handle multi-character case rules. It required a fair bit of reworking in order to accommodate this. I had to delay the casing transformations to be done later, by buffering up the string to transform, and then allowing the callback to do an in-place transformation on the entire input to be transformed.
Found by Clang-Analyze in #576
This test fails without the code fix, which required correcting the way
the pcre2grep tests are run with valgrind.
The new test passes with the code changes made.
* Add support for Ninja Multi-Config generator on all platforms
* Ensure one build job is using CMake 3.15
* Provide a build type (Debug or RelWithDebInfo) on all CMake builds
* Ensure PCRE2_DEBUG=ON is set for: dev.yml builds which use the
Release configuration
Change the minimum framesize value to match what the code can
support, while at it, refactor some of the conditionals used
so that extracting the framesize is more reliable (as the
assert is polymorphic) and update other seemingly unrelated bits
UCD 16 makes a lot of changes to scripts, so make sure that we have
sufficient coverage by keeping the original autogenerated tests in
addition.
Complete the code updates for changes to ScriptExtensions.txt which
is no longer sorted by script and allow for multiple unicode property
test files, depending on Unicode version.
* test: avoid failing RunTest if pcre2test -S is not supported
If `pcre2test -S` is not supported then then avoid checking for it
in a test.
There is already a conditional check for it to be used when it is
needed and it is available, so adjust that as well.
* pcre2test: update list of platform support for -S
Minix 3 has a BSD userspace and now works fine, but Haiku still
doesn't support stack limits, so update accordingly.