diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-06-03 20:16:00 +0200 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-06-03 20:19:16 +0200 |
| commit | 38e8e7bf000aaa1f7f6be15d72be35d6dc585271 (patch) | |
| tree | 09b08f221e6bb2a64767a4e1e77c63f246cd0a43 /tests/regex-gen.sh | |
| parent | 5ce263b586c5047d16ee93cc53bc3bce6f7ff12c (diff) | |
| download | pish-38e8e7bf000aaa1f7f6be15d72be35d6dc585271.tar.gz | |
shitton of test cases that codex generated
Diffstat (limited to 'tests/regex-gen.sh')
| -rwxr-xr-x | tests/regex-gen.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/regex-gen.sh b/tests/regex-gen.sh new file mode 100755 index 0000000..8e2f0c8 --- /dev/null +++ b/tests/regex-gen.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")" + +generate() { +cat <<"EOF" +//! Generated by `tests/regex-gen.sh` -- do not modify directly. + +mod common; +use common::regex; + +EOF + +i=0 +while IFS= read -r line; do + i=$((i + 1)) + + pattern=$(jq -r '.regex' <<<"$line") + + echo "#[test]" + echo "fn r${i}() {" + + echo " let re = regex(r#\"${pattern}\"#);" + + jq -r --arg pat "$pattern" ' + .accepts[] + | " assert!(re.matches(r#\"\(.)\"#), \"pattern: \($pat) | expected accept: \(. )\");" + ' <<<"$line" + + jq -r --arg pat "$pattern" ' + .rejects[] + | " assert!(!re.matches(r#\"\(.)\"#), \"pattern: \($pat) | expected reject: \(. )\");" + ' <<<"$line" + + echo "}" + echo +done +} + +generate < regex-data.json > regex.rs |
