summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2016-10-10 22:04:29 -0400
committerAndrew Gallant <jamslam@gmail.com>2016-10-10 22:04:29 -0400
commit4737326ed3e0d0a328dafcce9b8d4375ff142460 (patch)
treead4877310a598174547518eb2aed7fcdd4734b0b
parenta3537aa32a9069c0d740931010de32f0f184583f (diff)
Update regex-syntax for bug fix.
The bug fix was in expression pretty printing. ripgrep parses the regex into an AST and may do some modifications to it, which requires the ability to go from string -> AST -> string' -> AST' where string == string' implies AST == AST'. Also, add a regression test for the specific regex that tripped the bug. Fixes #156.
-rw-r--r--Cargo.lock8
-rw-r--r--tests/tests.rs28
2 files changed, 32 insertions, 4 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 6083716f..f1932c89 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -92,7 +92,7 @@ dependencies = [
"memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"memmap 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -161,7 +161,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"simd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -169,7 +169,7 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -253,7 +253,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum num_cpus 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8890e6084723d57d0df8d2720b0d60c6ee67d6c93e7169630e4371e88765dcad"
"checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5"
"checksum regex 0.1.77 (registry+https://github.com/rust-lang/crates.io-index)" = "64b03446c466d35b42f2a8b203c8e03ed8b91c0f17b56e1f84f7210a257aa665"
-"checksum regex-syntax 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279401017ae31cf4e15344aa3f085d0e2e5c1e70067289ef906906fdbe92c8fd"
+"checksum regex-syntax 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "48f0573bcee95a48da786f8823465b5f2a1fae288a55407aca991e5b3e0eae11"
"checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b"
"checksum simd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5847c2d766ca7ce7227672850955802fabd779ba616aeabead4c2c3877023"
"checksum strsim 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "50c069df92e4b01425a8bf3576d5d417943a6a7272fbabaf5bd80b1aaa76442e"
diff --git a/tests/tests.rs b/tests/tests.rs
index 032bae00..d6fe35d2 100644
--- a/tests/tests.rs
+++ b/tests/tests.rs
@@ -809,6 +809,34 @@ sym2:be, to a very large extent, the result of luck. Sherlock Holmes
assert_eq!(lines, path(expected));
});
+// See: https://github.com/BurntSushi/ripgrep/issues/156
+clean!(
+ regression_156,
+ r#"#(?:parse|include)\s*\(\s*(?:"|')[./A-Za-z_-]+(?:"|')"#,
+ "testcase.txt",
+|wd: WorkDir, mut cmd: Command| {
+ const TESTCASE: &'static str = r#"#parse('widgets/foo_bar_macros.vm')
+#parse ( 'widgets/mobile/foo_bar_macros.vm' )
+#parse ("widgets/foobarhiddenformfields.vm")
+#parse ( "widgets/foo_bar_legal.vm" )
+#include( 'widgets/foo_bar_tips.vm' )
+#include('widgets/mobile/foo_bar_macros.vm')
+#include ("widgets/mobile/foo_bar_resetpw.vm")
+#parse('widgets/foo-bar-macros.vm')
+#parse ( 'widgets/mobile/foo-bar-macros.vm' )
+#parse ("widgets/foo-bar-hiddenformfields.vm")
+#parse ( "widgets/foo-bar-legal.vm" )
+#include( 'widgets/foo-bar-tips.vm' )
+#include('widgets/mobile/foo-bar-macros.vm')
+#include ("widgets/mobile/foo-bar-resetpw.vm")
+"#;
+ wd.create("testcase.txt", TESTCASE);
+ cmd.arg("-N");
+
+ let lines: String = wd.stdout(&mut cmd);
+ assert_eq!(lines, TESTCASE);
+});
+
// See: https://github.com/BurntSushi/ripgrep/issues/20
sherlock!(feature_20_no_filename, "Sherlock", ".",
|wd: WorkDir, mut cmd: Command| {