diff options
author | Andrew Gallant <jamslam@gmail.com> | 2016-09-09 22:58:30 -0400 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2016-09-09 22:58:30 -0400 |
commit | f83cd63b11f3fa6e85cd5bb0f803a69fa05efa84 (patch) | |
tree | 6f2a426b7e0e1ea92844cc915a38972585608319 /src | |
parent | 9a4527d1076cfec4d3856a40d73b1b82ea1033aa (diff) |
Add integration tests.
Diffstat (limited to 'src')
-rw-r--r-- | src/args.rs | 19 | ||||
-rw-r--r-- | src/search.rs | 53 | ||||
-rw-r--r-- | src/search_buffer.rs | 19 |
3 files changed, 39 insertions, 52 deletions
diff --git a/src/args.rs b/src/args.rs index d6a9657f..ea7299fe 100644 --- a/src/args.rs +++ b/src/args.rs @@ -109,10 +109,6 @@ Less common options: -L, --follow Follow symlinks. - --line-terminator ARG - The byte to use for a line terminator. Escape sequences may be used. - [default: \\n] - --mmap Search using memory maps when possible. This is enabled by default when ripgrep thinks it will be faster. (Note that mmap searching @@ -174,7 +170,6 @@ pub struct RawArgs { flag_ignore_case: bool, flag_invert_match: bool, flag_line_number: bool, - flag_line_terminator: String, flag_literal: bool, flag_mmap: bool, flag_no_heading: bool, @@ -248,7 +243,9 @@ impl RawArgs { }; let paths = if self.arg_path.is_empty() { - if sys::stdin_is_atty() { + if sys::stdin_is_atty() + || self.flag_files + || self.flag_type_list { vec![Path::new("./").to_path_buf()] } else { vec![Path::new("-").to_path_buf()] @@ -277,15 +274,6 @@ impl RawArgs { if mmap { debug!("will try to use memory maps"); } - let eol = { - let eol = unescape(&self.flag_line_terminator); - if eol.is_empty() { - errored!("Empty line terminator is not allowed."); - } else if eol.len() > 1 { - errored!("Line terminators are limited to exactly 1 byte."); - } - eol[0] - }; let glob_overrides = if self.flag_glob.is_empty() { None @@ -309,6 +297,7 @@ impl RawArgs { } else { self.flag_color == "always" }; + let eol = b'\n'; let mut with_filename = self.flag_with_filename; if !with_filename { with_filename = paths.len() > 1 || paths[0].is_dir(); diff --git a/src/search.rs b/src/search.rs index 523d1e4d..027bd0d3 100644 --- a/src/search.rs +++ b/src/search.rs @@ -695,8 +695,7 @@ mod tests { use super::{InputBuffer, Searcher, start_of_previous_lines}; - lazy_static! { - static ref SHERLOCK: &'static str = "\ + const SHERLOCK: &'static str = "\ For the Doctor Watsons of this world, as opposed to the Sherlock Holmeses, success in the province of detective work must always be, to a very large extent, the result of luck. Sherlock Holmes @@ -704,7 +703,8 @@ can extract a clew from a wisp of straw or a flake of cigar ash; but Doctor Watson has to have it taken out for him and dusted, and exhibited clearly, with a label attached.\ "; - static ref CODE: &'static str = "\ + + const CODE: &'static str = "\ extern crate snap; use std::io; @@ -719,7 +719,6 @@ fn main() { io::copy(&mut rdr, &mut wtr).expect(\"I/O operation failed\"); } "; - } fn hay(s: &str) -> io::Cursor<Vec<u8>> { io::Cursor::new(s.to_string().into_bytes()) @@ -874,7 +873,7 @@ fn main() { #[test] fn basic_search1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s|s); + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s|s); assert_eq!(2, count); assert_eq!(out, "\ /baz.rs:For the Doctor Watsons of this world, as opposed to the Sherlock @@ -901,7 +900,7 @@ fn main() { #[test] fn line_numbers() { let (count, out) = search_smallcap( - "Sherlock", &*SHERLOCK, |s| s.line_number(true)); + "Sherlock", SHERLOCK, |s| s.line_number(true)); assert_eq!(2, count); assert_eq!(out, "\ /baz.rs:1:For the Doctor Watsons of this world, as opposed to the Sherlock @@ -912,7 +911,7 @@ fn main() { #[test] fn count() { let (count, out) = search_smallcap( - "Sherlock", &*SHERLOCK, |s| s.count(true)); + "Sherlock", SHERLOCK, |s| s.count(true)); assert_eq!(2, count); assert_eq!(out, "/baz.rs:2\n"); } @@ -920,7 +919,7 @@ fn main() { #[test] fn invert_match() { let (count, out) = search_smallcap( - "Sherlock", &*SHERLOCK, |s| s.invert_match(true)); + "Sherlock", SHERLOCK, |s| s.invert_match(true)); assert_eq!(4, count); assert_eq!(out, "\ /baz.rs:Holmeses, success in the province of detective work must always @@ -932,7 +931,7 @@ fn main() { #[test] fn invert_match_line_numbers() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.invert_match(true).line_number(true) }); assert_eq!(4, count); @@ -946,7 +945,7 @@ fn main() { #[test] fn invert_match_count() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.invert_match(true).count(true) }); assert_eq!(4, count); @@ -955,7 +954,7 @@ fn main() { #[test] fn before_context_one1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).before_context(1) }); assert_eq!(2, count); @@ -968,7 +967,7 @@ fn main() { #[test] fn before_context_invert_one1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).before_context(1).invert_match(true) }); assert_eq!(4, count); @@ -984,7 +983,7 @@ fn main() { #[test] fn before_context_invert_one2() { - let (count, out) = search_smallcap(" a ", &*SHERLOCK, |s| { + let (count, out) = search_smallcap(" a ", SHERLOCK, |s| { s.line_number(true).before_context(1).invert_match(true) }); assert_eq!(3, count); @@ -999,7 +998,7 @@ fn main() { #[test] fn before_context_two1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).before_context(2) }); assert_eq!(2, count); @@ -1012,7 +1011,7 @@ fn main() { #[test] fn before_context_two2() { - let (count, out) = search_smallcap("dusted", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("dusted", SHERLOCK, |s| { s.line_number(true).before_context(2) }); assert_eq!(1, count); @@ -1026,7 +1025,7 @@ fn main() { #[test] fn before_context_two3() { let (count, out) = search_smallcap( - "success|attached", &*SHERLOCK, |s| { + "success|attached", SHERLOCK, |s| { s.line_number(true).before_context(2) }); assert_eq!(2, count); @@ -1042,7 +1041,7 @@ fn main() { #[test] fn before_context_two4() { - let (count, out) = search("stdin", &*CODE, |s| { + let (count, out) = search("stdin", CODE, |s| { s.line_number(true).before_context(2) }); assert_eq!(3, count); @@ -1059,7 +1058,7 @@ fn main() { #[test] fn before_context_two5() { - let (count, out) = search("stdout", &*CODE, |s| { + let (count, out) = search("stdout", CODE, |s| { s.line_number(true).before_context(2) }); assert_eq!(2, count); @@ -1076,7 +1075,7 @@ fn main() { #[test] fn before_context_three1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).before_context(3) }); assert_eq!(2, count); @@ -1089,7 +1088,7 @@ fn main() { #[test] fn after_context_one1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).after_context(1) }); assert_eq!(2, count); @@ -1103,7 +1102,7 @@ fn main() { #[test] fn after_context_invert_one1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).after_context(1).invert_match(true) }); assert_eq!(4, count); @@ -1118,7 +1117,7 @@ fn main() { #[test] fn after_context_invert_one2() { - let (count, out) = search_smallcap(" a ", &*SHERLOCK, |s| { + let (count, out) = search_smallcap(" a ", SHERLOCK, |s| { s.line_number(true).after_context(1).invert_match(true) }); assert_eq!(3, count); @@ -1134,7 +1133,7 @@ fn main() { #[test] fn after_context_two1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).after_context(2) }); assert_eq!(2, count); @@ -1149,7 +1148,7 @@ fn main() { #[test] fn after_context_two2() { - let (count, out) = search_smallcap("dusted", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("dusted", SHERLOCK, |s| { s.line_number(true).after_context(2) }); assert_eq!(1, count); @@ -1162,7 +1161,7 @@ fn main() { #[test] fn after_context_two3() { let (count, out) = search_smallcap( - "success|attached", &*SHERLOCK, |s| { + "success|attached", SHERLOCK, |s| { s.line_number(true).after_context(2) }); assert_eq!(2, count); @@ -1177,7 +1176,7 @@ fn main() { #[test] fn after_context_three1() { - let (count, out) = search_smallcap("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search_smallcap("Sherlock", SHERLOCK, |s| { s.line_number(true).after_context(3) }); assert_eq!(2, count); @@ -1194,7 +1193,7 @@ fn main() { #[test] fn before_after_context_two1() { let (count, out) = search( - r"fn main|let mut rdr", &*CODE, |s| { + r"fn main|let mut rdr", CODE, |s| { s.line_number(true).after_context(2).before_context(2) }); assert_eq!(2, count); diff --git a/src/search_buffer.rs b/src/search_buffer.rs index 23578de9..fc8cd3a1 100644 --- a/src/search_buffer.rs +++ b/src/search_buffer.rs @@ -151,8 +151,7 @@ mod tests { use super::BufferSearcher; - lazy_static! { - static ref SHERLOCK: &'static str = "\ + const SHERLOCK: &'static str = "\ For the Doctor Watsons of this world, as opposed to the Sherlock Holmeses, success in the province of detective work must always be, to a very large extent, the result of luck. Sherlock Holmes @@ -160,7 +159,8 @@ can extract a clew from a wisp of straw or a flake of cigar ash; but Doctor Watson has to have it taken out for him and dusted, and exhibited clearly, with a label attached.\ "; - static ref CODE: &'static str = "\ + + const CODE: &'static str = "\ extern crate snap; use std::io; @@ -175,7 +175,6 @@ fn main() { io::copy(&mut rdr, &mut wtr).expect(\"I/O operation failed\"); } "; - } fn matcher(pat: &str) -> Grep { GrepBuilder::new(pat).build().unwrap() @@ -205,7 +204,7 @@ fn main() { #[test] fn basic_search() { - let (count, out) = search("Sherlock", &*SHERLOCK, |s|s); + let (count, out) = search("Sherlock", SHERLOCK, |s|s); assert_eq!(2, count); assert_eq!(out, "\ /baz.rs:For the Doctor Watsons of this world, as opposed to the Sherlock @@ -233,7 +232,7 @@ fn main() { #[test] fn line_numbers() { let (count, out) = search( - "Sherlock", &*SHERLOCK, |s| s.line_number(true)); + "Sherlock", SHERLOCK, |s| s.line_number(true)); assert_eq!(2, count); assert_eq!(out, "\ /baz.rs:1:For the Doctor Watsons of this world, as opposed to the Sherlock @@ -244,7 +243,7 @@ fn main() { #[test] fn count() { let (count, out) = search( - "Sherlock", &*SHERLOCK, |s| s.count(true)); + "Sherlock", SHERLOCK, |s| s.count(true)); assert_eq!(2, count); assert_eq!(out, "/baz.rs:2\n"); } @@ -252,7 +251,7 @@ fn main() { #[test] fn invert_match() { let (count, out) = search( - "Sherlock", &*SHERLOCK, |s| s.invert_match(true)); + "Sherlock", SHERLOCK, |s| s.invert_match(true)); assert_eq!(4, count); assert_eq!(out, "\ /baz.rs:Holmeses, success in the province of detective work must always @@ -264,7 +263,7 @@ fn main() { #[test] fn invert_match_line_numbers() { - let (count, out) = search("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search("Sherlock", SHERLOCK, |s| { s.invert_match(true).line_number(true) }); assert_eq!(4, count); @@ -278,7 +277,7 @@ fn main() { #[test] fn invert_match_count() { - let (count, out) = search("Sherlock", &*SHERLOCK, |s| { + let (count, out) = search("Sherlock", SHERLOCK, |s| { s.invert_match(true).count(true) }); assert_eq!(4, count); |