summaryrefslogtreecommitdiffstats
path: root/vendor/regex/tests/test_default_bytes.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vendor/regex/tests/test_default_bytes.rs75
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/regex/tests/test_default_bytes.rs b/vendor/regex/tests/test_default_bytes.rs
new file mode 100644
index 000000000..f200596ba
--- /dev/null
+++ b/vendor/regex/tests/test_default_bytes.rs
@@ -0,0 +1,75 @@
+macro_rules! regex_new {
+ ($re:expr) => {{
+ use regex::bytes::Regex;
+ Regex::new($re)
+ }};
+}
+
+macro_rules! regex_set_new {
+ ($res:expr) => {{
+ use regex::bytes::RegexSet;
+ RegexSet::new($res)
+ }};
+}
+
+macro_rules! regex {
+ ($re:expr) => {
+ regex_new!($re).unwrap()
+ };
+}
+
+macro_rules! regex_set {
+ ($res:expr) => {
+ regex_set_new!($res).unwrap()
+ };
+}
+
+// Must come before other module definitions.
+include!("macros_bytes.rs");
+include!("macros.rs");
+
+// A silly wrapper to make it possible to write and match raw bytes.
+struct R<'a>(&'a [u8]);
+impl<'a> R<'a> {
+ fn as_bytes(&self) -> &'a [u8] {
+ self.0
+ }
+}
+
+// See: https://github.com/rust-lang/regex/issues/321
+//
+// These tests are here because they do not have the same behavior in every
+// regex engine.
+mat!(invalid_utf8_nfa1, r".", R(b"\xD4\xC2\x65\x2B\x0E\xFE"), Some((2, 3)));
+mat!(invalid_utf8_nfa2, r"${2}ä", R(b"\xD4\xC2\x65\x2B\x0E\xFE"), None);
+mat!(
+ invalid_utf8_nfa3,
+ r".",
+ R(b"\x0A\xDB\x82\x6E\x33\x01\xDD\x33\xCD"),
+ Some((1, 3))
+);
+mat!(
+ invalid_utf8_nfa4,
+ r"${2}ä",
+ R(b"\x0A\xDB\x82\x6E\x33\x01\xDD\x33\xCD"),
+ None
+);
+
+mod api;
+mod bytes;
+mod crazy;
+mod flags;
+mod fowler;
+mod multiline;
+mod noparse;
+mod regression;
+mod replace;
+mod set;
+mod shortest_match;
+mod suffix_reverse;
+#[cfg(feature = "unicode")]
+mod unicode;
+#[cfg(feature = "unicode-perl")]
+mod word_boundary;
+#[cfg(feature = "unicode-perl")]
+mod word_boundary_unicode;