summaryrefslogtreecommitdiffstats
path: root/vendor/nom/tests/issues.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
commit9835e2ae736235810b4ea1c162ca5e65c547e770 (patch)
tree3fcebf40ed70e581d776a8a4c65923e8ec20e026 /vendor/nom/tests/issues.rs
parentReleasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff)
downloadrustc-9835e2ae736235810b4ea1c162ca5e65c547e770.tar.xz
rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/nom/tests/issues.rs')
-rw-r--r--vendor/nom/tests/issues.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/nom/tests/issues.rs b/vendor/nom/tests/issues.rs
index 6df183bd4..7985702f6 100644
--- a/vendor/nom/tests/issues.rs
+++ b/vendor/nom/tests/issues.rs
@@ -206,3 +206,37 @@ fn issue_1231_bits_expect_fn_closure() {
}
assert_eq!(example(&[0xff]), Ok((&b""[..], (1, 1))));
}
+
+#[test]
+fn issue_1282_findtoken_char() {
+ use nom::character::complete::one_of;
+ use nom::error::Error;
+ let parser = one_of::<_, _, Error<_>>(&['a', 'b', 'c'][..]);
+ assert_eq!(parser("aaa"), Ok(("aa", 'a')));
+}
+
+#[test]
+fn issue_1459_clamp_capacity() {
+ use nom::character::complete::char;
+
+ // shouldn't panic
+ use nom::multi::many_m_n;
+ let mut parser = many_m_n::<_, _, (), _>(usize::MAX, usize::MAX, char('a'));
+ assert_eq!(parser("a"), Err(nom::Err::Error(())));
+
+ // shouldn't panic
+ use nom::multi::count;
+ let mut parser = count::<_, _, (), _>(char('a'), usize::MAX);
+ assert_eq!(parser("a"), Err(nom::Err::Error(())));
+}
+
+#[test]
+fn issue_1617_count_parser_returning_zero_size() {
+ use nom::{bytes::complete::tag, combinator::map, error::Error, multi::count};
+
+ // previously, `count()` panicked if the parser had type `O = ()`
+ let parser = map(tag::<_, _, Error<&str>>("abc"), |_| ());
+ // shouldn't panic
+ let result = count(parser, 3)("abcabcabcdef").expect("parsing should succeed");
+ assert_eq!(result, ("def", vec![(), (), ()]));
+}