diff options
| author | Andrew Gallant <jamslam@gmail.com> | 2014-06-03 23:04:59 -0400 |
|---|---|---|
| committer | Andrew Gallant <jamslam@gmail.com> | 2014-06-03 23:04:59 -0400 |
| commit | 9d39178f2f60b6076e4bd00e263f2304084f34b4 (patch) | |
| tree | 79d7933e3f1461c45acb51d1162e7cbcae50dba0 /src/libregex/test | |
| parent | f5ead0dd66ab7c3aaaaabcc34e1726a4acd74b07 (diff) | |
| download | rust-9d39178f2f60b6076e4bd00e263f2304084f34b4.tar.gz rust-9d39178f2f60b6076e4bd00e263f2304084f34b4.zip | |
Fixes #13843.
An empty regex is a valid regex that always matches. This behavior is consistent with at least Go and Python. A couple regression tests are included.
Diffstat (limited to 'src/libregex/test')
| -rw-r--r-- | src/libregex/test/tests.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libregex/test/tests.rs b/src/libregex/test/tests.rs index 68d43156ae6..35cb7c3c5b0 100644 --- a/src/libregex/test/tests.rs +++ b/src/libregex/test/tests.rs @@ -28,6 +28,20 @@ fn split() { assert_eq!(subs, vec!("cauchy", "plato", "tyler", "binx")); } +#[test] +fn empty_regex_empty_match() { + let re = regex!(""); + let ms = re.find_iter("").collect::<Vec<(uint, uint)>>(); + assert_eq!(ms, vec![(0, 0)]); +} + +#[test] +fn empty_regex_nonempty_match() { + let re = regex!(""); + let ms = re.find_iter("abc").collect::<Vec<(uint, uint)>>(); + assert_eq!(ms, vec![(0, 0), (1, 1), (2, 2), (3, 3)]); +} + macro_rules! replace( ($name:ident, $which:ident, $re:expr, $search:expr, $replace:expr, $result:expr) => ( |
