From 38e8e7bf000aaa1f7f6be15d72be35d6dc585271 Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Wed, 3 Jun 2026 20:16:00 +0200 Subject: shitton of test cases that codex generated --- tests/regex-gen.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 tests/regex-gen.sh (limited to 'tests/regex-gen.sh') 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 -- cgit v1.2.3