pomsky icon indicating copy to clipboard operation
pomsky copied to clipboard

Support more regex engines for testing

Open Aloso opened this issue 1 year ago • 2 comments

Is your feature request related to a problem? Please describe.

Currently, tests can only be executed with PCRE2. They should be executable with a regex engine for every flavor. Also, the --test <ENGINE> CLI interface is confusing.

Describe the solution you'd like

Extend the supported engines to include at least the following:

  • [x] pcre2
  • [x] rust
  • [ ] onig
  • [ ] python
  • [ ] node
  • [ ] deno
  • [ ] java

Getting C# to work cross-platform is more tricky, which is why it isn't included in this list for now.

Strategies

  • Rust, Oniguruma: Regex engine is statically linked in the executable
  • Python: python3 -c ...; fallback to python executable if unavailable
  • Node: node -e ...
  • Deno: deno eval ...
  • Java: java with a temporary class file

Batch checking

A command that tests all pomsky expressions in a directory would be immensely helpful, e.g. for pre-commit hooks and CI. It should

  • walk the provided directory recursively, respecting .gitignore and .pomskyignore files
  • follow symlinks ??
  • compile and test all files with a .pomsky extension
  • if not using a statically linked regex library, re-use the process that does the testing for all files (similarly to regex-test)
  • provide a summary (number of succeeded/failed tests) and errors

Aloso avatar Nov 26 '24 16:11 Aloso

any chance for RE2 support? (go and DuckDB for instance). I'm using pomsky to generate regexes (w/o the features RE2 lacks) so testing with PCRE is equivalent but having this checked off during tests would be nice.

fundef1 avatar Nov 27 '24 09:11 fundef1

Rust is now supported.

Aloso avatar Dec 12 '24 21:12 Aloso