aboutsummaryrefslogtreecommitdiffstats
path: root/tests/common.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common.rs')
-rw-r--r--tests/common.rs34
1 files changed, 6 insertions, 28 deletions
diff --git a/tests/common.rs b/tests/common.rs
index ba4b292..0523906 100644
--- a/tests/common.rs
+++ b/tests/common.rs
@@ -1,9 +1,8 @@
#![allow(unused)]
-use pish::parse::{
- Parse,
- regex::{CompiledPattern, Pattern, bc::BytecodeCompiledRegex},
-};
+use pish::parse::Parse;
+use pish::regex::{AllEngines, Pattern};
+pub use pish::regex::RegexEngine;
pub fn test_case(_name: &str, script: &[u8], expected_output: &[u8]) {
use pish::parse::Parse;
@@ -30,28 +29,7 @@ pub fn test_case(_name: &str, script: &[u8], expected_output: &[u8]) {
);
}
-pub struct MultiTestCompiledPattern {
- dfa: CompiledPattern,
- vm: BytecodeCompiledRegex,
-}
-
-impl MultiTestCompiledPattern {
- pub fn matches(&self, string: impl Clone + AsRef<[u8]>) -> bool {
- let dfa_result = self.dfa.matches(string.clone());
- let vm_result = self.vm.matches(string.as_ref());
- assert_eq!(dfa_result, vm_result);
- dfa_result
- }
-}
-
-pub fn regex(pat: &str) -> MultiTestCompiledPattern {
- let parsed =
- Pattern::parse_from_bytes(pat.as_bytes()).expect(&format!("pattern {pat} does not parse"));
- let dfa = parsed
- .clone()
- .try_compile()
- .expect(&format!("pattern {pat} does not compile to DFA"));
- let vm = BytecodeCompiledRegex::try_from(parsed.clone())
- .expect(&format!("pattern {pat} does not compile to VM"));
- MultiTestCompiledPattern { dfa, vm }
+pub fn regex(pat: &str) -> impl RegexEngine {
+ let parsed = Pattern::parse_from_bytes(pat.as_bytes()).expect(&format!("pattern {pat} does not parse"));
+ AllEngines::compile(parsed).unwrap()
}