• Tom Lane's avatar
    Add a test module for the regular expression package. · ca8217c1
    Tom Lane authored
    This module provides a function test_regex() that is functionally
    rather like regexp_matches(), but with additional debugging-oriented
    options and additional output.  The debug options are somewhat obscure;
    they are chosen to match the API of the test harness that Henry Spencer
    wrote way-back-when for use in Tcl.  With this, we can import all the
    test cases that Spencer wrote originally, even for regex functionality
    that we don't currently expose in Postgres.  This seems necessary
    because we can no longer rely on Tcl to act as upstream and verify
    any fixes or improvements that we make.
    
    In addition to Spencer's tests, I added a few for lookbehind
    constraints (which we added in 2015, and Tcl still hasn't absorbed)
    that are modeled on his tests for lookahead constraints.  After looking
    at code coverage reports, I also threw in a couple of tests to more
    fully exercise our "high colormap" logic.
    
    According to my testing, this brings the check-world coverage
    for src/backend/regex/ from 71.1% to 86.7% of lines.
    (coverage.postgresql.org shows a slightly different number,
    which I think is because it measures a non-assert build.)
    
    Discussion: https://postgr.es/m/2873268.1609732164@sss.pgh.pa.us
    ca8217c1
test_regex.out 117 KB