diff options
| author | bors <bors@rust-lang.org> | 2015-01-24 05:12:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-24 05:12:15 +0000 |
| commit | e5c1f166a8282072089de2ad62a5b2427bd2bebf (patch) | |
| tree | f34f763e8ee24bba284b7902496d370667e2a1f5 /src/libtest | |
| parent | 4be79d6acde9eed3a9b5281a46f385bcb4ce736c (diff) | |
| parent | 6c29708bf906fa9075bb96b76fd7f6cc81eda43c (diff) | |
| download | rust-e5c1f166a8282072089de2ad62a5b2427bd2bebf.tar.gz rust-e5c1f166a8282072089de2ad62a5b2427bd2bebf.zip | |
Auto merge of #21458 - alexcrichton:remove-some-code, r=brson
The base64 support can be trivially removed (there are no in-tree users) and the regex support is a whopping 4k lines of code to maintain for a few non-critical uses in-tree. This commit migrates all current users in-tree away from regexes to custom matching code. The most critical application affected by this migration is that the testing framework no longer considers filter arguments as regexes, but rather just a substring matching. It is expected that more featureful testing frameworks can evolve outside of the in-tree libtest version over time which can properly depend on libregex from crates.io. [breaking-change]
Diffstat (limited to 'src/libtest')
| -rw-r--r-- | src/libtest/lib.rs | 58 |
1 files changed, 6 insertions, 52 deletions
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs index 7226c6423b8..793483754ee 100644 --- a/src/libtest/lib.rs +++ b/src/libtest/lib.rs @@ -38,7 +38,6 @@ #![allow(unstable)] extern crate getopts; -extern crate regex; extern crate serialize; extern crate "serialize" as rustc_serialize; extern crate term; @@ -53,7 +52,6 @@ use self::OutputLocation::*; use stats::Stats; use getopts::{OptGroup, optflag, optopt}; -use regex::Regex; use serialize::Encodable; use term::Terminal; use term::color::{Color, RED, YELLOW, GREEN, CYAN}; @@ -279,7 +277,7 @@ pub enum ColorConfig { } pub struct TestOpts { - pub filter: Option<Regex>, + pub filter: Option<String>, pub run_ignored: bool, pub run_tests: bool, pub run_benchmarks: bool, @@ -365,11 +363,7 @@ pub fn parse_opts(args: &[String]) -> Option<OptRes> { if matches.opt_present("h") { usage(args[0].as_slice()); return None; } let filter = if matches.free.len() > 0 { - let s = matches.free[0].as_slice(); - match Regex::new(s) { - Ok(re) => Some(re), - Err(e) => return Some(Err(format!("could not parse /{}/: {:?}", s, e))) - } + Some(matches.free[0].clone()) } else { None }; @@ -833,9 +827,10 @@ pub fn filter_tests(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> Vec<TestDescA // Remove tests that don't match the test filter filtered = match opts.filter { None => filtered, - Some(ref re) => { - filtered.into_iter() - .filter(|test| re.is_match(test.desc.name.as_slice())).collect() + Some(ref filter) => { + filtered.into_iter().filter(|test| { + test.desc.name.as_slice().contains(&filter[]) + }).collect() } }; @@ -1231,16 +1226,6 @@ mod tests { } #[test] - fn first_free_arg_should_be_a_filter() { - let args = vec!("progname".to_string(), "some_regex_filter".to_string()); - let opts = match parse_opts(args.as_slice()) { - Some(Ok(o)) => o, - _ => panic!("Malformed arg in first_free_arg_should_be_a_filter") - }; - assert!(opts.filter.expect("should've found filter").is_match("some_regex_filter")) - } - - #[test] fn parse_ignored_flag() { let args = vec!("progname".to_string(), "filter".to_string(), @@ -1337,37 +1322,6 @@ mod tests { } #[test] - pub fn filter_tests_regex() { - let mut opts = TestOpts::new(); - opts.filter = Some(::regex::Regex::new("a.*b.+c").unwrap()); - - let mut names = ["yes::abXc", "yes::aXXXbXXXXc", - "no::XYZ", "no::abc"]; - names.sort(); - - fn test_fn() {} - let tests = names.iter().map(|name| { - TestDescAndFn { - desc: TestDesc { - name: DynTestName(name.to_string()), - ignore: false, - should_fail: ShouldFail::No, - }, - testfn: DynTestFn(Thunk::new(test_fn)) - } - }).collect(); - let filtered = filter_tests(&opts, tests); - - let expected: Vec<&str> = - names.iter().map(|&s| s).filter(|name| name.starts_with("yes")).collect(); - - assert_eq!(filtered.len(), expected.len()); - for (test, expected_name) in filtered.iter().zip(expected.iter()) { - assert_eq!(test.desc.name.as_slice(), *expected_name); - } - } - - #[test] pub fn test_metricmap_compare() { let mut m1 = MetricMap::new(); let mut m2 = MetricMap::new(); |
