diff options
author | Vincent Breitmoser <look@my.amazin.horse> | 2019-01-28 14:10:29 +0100 |
---|---|---|
committer | Vincent Breitmoser <look@my.amazin.horse> | 2019-01-28 14:34:26 +0100 |
commit | 456cdbd902a13168d29f8b3c29c7d924cd8d5fdb (patch) | |
tree | d3669062642935ec7f397ef4280144bd6e49d97e | |
parent | 7fe92b1f2feb8856dd9369f221dd462e82bf6dcc (diff) |
ci: filter integration and unit tests by module name
-rw-r--r-- | .circleci/config.yml | 27 | ||||
-rw-r--r-- | src/actions/agenda.rs | 2 | ||||
-rw-r--r-- | src/actions/calendars.rs | 2 | ||||
-rw-r--r-- | src/actions/copy.rs | 2 | ||||
-rw-r--r-- | src/actions/cursor.rs | 2 | ||||
-rw-r--r-- | src/actions/edit.rs | 2 | ||||
-rw-r--r-- | src/actions/get.rs | 2 | ||||
-rw-r--r-- | src/actions/index/action.rs | 2 | ||||
-rw-r--r-- | src/actions/index/bucketable.rs | 101 | ||||
-rw-r--r-- | src/actions/new.rs | 2 | ||||
-rw-r--r-- | src/actions/seq.rs | 2 | ||||
-rw-r--r-- | src/actions/show.rs | 2 | ||||
-rw-r--r-- | src/selectors/cal.rs | 46 | ||||
-rw-r--r-- | src/selectors/daterange.rs | 129 | ||||
-rw-r--r-- | src/selectors/prop.rs | 36 | ||||
-rw-r--r-- | src/selectors/range.rs | 2 | ||||
-rw-r--r-- | src/selectors/test.rs | 18 |
17 files changed, 191 insertions, 188 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 7085b92..ec8b347 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -53,23 +53,16 @@ jobs: - run: name: Run coverage for unit tests command: | - # hack - order by size to assign flags (unit tests are smaller) - flags=( unit integration ); - for file in $(ls --sort=size -r ./target/debug/khaleesi-*); do - if [[ -f "$file" && -x "$file" ]]; then - flag=${flags[0]}; - flags=("${flags[@]:1}"); # shift array by 1 - if [[ -z "$flag" ]]; then - echo "Error, no flag left!"; - break; - fi - echo "Running coverage for: $file, flag $flag"; - kcov --verify --include-path $(pwd) --exclude-pattern=tests \ - target/coverage/$(basename $file) \ - $file --quiet - # -c deletes coverage data after submission - bash <(curl -s https://codecov.io/bash) -c -F $flag; - fi + # hack - find biggest binary in dir + testsuite=$(ls --sort=size ./target/debug/khaleesi-* | head -n 1) + flags=( tests integration ); + for flag in ${flags[@]}; do + echo "Running coverage for $flag"; + kcov --verify --include-path $(pwd) --exclude-pattern=tests \ + target/coverage/$flag \ + $testsuite --quiet ::${flag}:: + # -c deletes coverage data after submission + bash <(curl -s https://codecov.io/bash) -c -F $flag; done workflows: version: 2 diff --git a/src/actions/agenda.rs b/src/actions/agenda.rs index b89b0a8..bb2e084 100644 --- a/src/actions/agenda.rs +++ b/src/actions/agenda.rs @@ -179,7 +179,7 @@ impl IcalVEvent { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testdata; use testutils::*; diff --git a/src/actions/calendars.rs b/src/actions/calendars.rs index 0319a90..72a8a7d 100644 --- a/src/actions/calendars.rs +++ b/src/actions/calendars.rs @@ -9,7 +9,7 @@ pub fn action_list_calendars(_args: &[String]) -> Result<(), String> { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils; diff --git a/src/actions/copy.rs b/src/actions/copy.rs index e8cd4fa..ca6dda4 100644 --- a/src/actions/copy.rs +++ b/src/actions/copy.rs @@ -20,7 +20,7 @@ pub fn do_copy(_args: &[&str]) -> KhResult<()> { #[cfg(test)] -mod tests { +mod integration { use super::*; use assert_fs::prelude::*; diff --git a/src/actions/cursor.rs b/src/actions/cursor.rs index eefda5c..4fc6a92 100644 --- a/src/actions/cursor.rs +++ b/src/actions/cursor.rs @@ -37,7 +37,7 @@ fn write_cursorfile_to_stdout() { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils; diff --git a/src/actions/edit.rs b/src/actions/edit.rs index 0f1126b..faf90b4 100644 --- a/src/actions/edit.rs +++ b/src/actions/edit.rs @@ -30,7 +30,7 @@ fn edit(khline: &KhLine) -> KhResult<()> { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils::prepare_testdir; diff --git a/src/actions/get.rs b/src/actions/get.rs index f059ea0..2d1f0ca 100644 --- a/src/actions/get.rs +++ b/src/actions/get.rs @@ -20,7 +20,7 @@ pub fn action_get_calendars() -> KhResult<()> { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils; diff --git a/src/actions/index/action.rs b/src/actions/index/action.rs index dca650c..2e27bb0 100644 --- a/src/actions/index/action.rs +++ b/src/actions/index/action.rs @@ -160,7 +160,7 @@ fn prepare_index_dir(indexdir: &Path, clear_index_dir: bool) -> Result<(), std:: } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils::prepare_testdir; diff --git a/src/actions/index/bucketable.rs b/src/actions/index/bucketable.rs index f292c98..1125b1c 100644 --- a/src/actions/index/bucketable.rs +++ b/src/actions/index/bucketable.rs @@ -88,64 +88,69 @@ where K: cmp::Eq + hash::Hash, } } -#[test] -fn merge_test() { - let mut map_a: HashMap<&str, Vec<String>> = HashMap::new(); - let mut map_b: HashMap<&str, Vec<String>> = HashMap::new(); +#[cfg(test)] +mod tests { + use super::*; - let key = "key"; - map_a.insert(&key, vec!["a".to_string(), "b".to_string()]); - map_b.insert(&key, vec!["c".to_string(), "d".to_string()]); + #[test] + fn merge_test() { + let mut map_a: HashMap<&str, Vec<String>> = HashMap::new(); + let mut map_b: HashMap<&str, Vec<String>> = HashMap::new(); - map_a.merge(map_b); - assert_eq!(map_a.get(&key).unwrap(), &vec!["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()]); -} + let key = "key"; + map_a.insert(&key, vec!["a".to_string(), "b".to_string()]); + map_b.insert(&key, vec!["c".to_string(), "d".to_string()]); + + map_a.merge(map_b); + assert_eq!(map_a.get(&key).unwrap(), &vec!["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()]); + } -#[test] -fn buckets_multi_day_allday() { - use testdata; - use std::path::PathBuf; + #[test] + fn buckets_multi_day_allday() { + use testdata; + use std::path::PathBuf; - let path = PathBuf::from("test/path"); - let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_MULTIDAY_ALLDAY, Some(&path)).unwrap(); + let path = PathBuf::from("test/path"); + let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_MULTIDAY_ALLDAY, Some(&path)).unwrap(); - let event_buckets = cal.get_principal_event().get_buckets().unwrap(); + let event_buckets = cal.get_principal_event().get_buckets().unwrap(); - assert_eq!(2, event_buckets.len()); + assert_eq!(2, event_buckets.len()); - let mut bucket_names = event_buckets.keys().collect::<Vec<&String>>(); - bucket_names.sort_unstable(); - assert_eq!(vec!("2007-W26", "2007-W27"), bucket_names); + let mut bucket_names = event_buckets.keys().collect::<Vec<&String>>(); + bucket_names.sort_unstable(); + assert_eq!(vec!("2007-W26", "2007-W27"), bucket_names); - let cal_buckets = cal.get_buckets().unwrap(); - assert_eq!(event_buckets, cal_buckets); -} + let cal_buckets = cal.get_buckets().unwrap(); + assert_eq!(event_buckets, cal_buckets); + } -#[test] -fn buckets_single_event() { - use testdata; - use std::path::PathBuf; + #[test] + fn buckets_single_event() { + use testdata; + use std::path::PathBuf; - let path = PathBuf::from("test/path"); - let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_ONE_MEETING, Some(&path)).unwrap(); + let path = PathBuf::from("test/path"); + let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_ONE_MEETING, Some(&path)).unwrap(); - let comp_buckets = cal.get_buckets().unwrap(); - assert_eq!(vec!("1997-W13"), comp_buckets.keys().collect::<Vec<&String>>()); -} + let comp_buckets = cal.get_buckets().unwrap(); + assert_eq!(vec!("1997-W13"), comp_buckets.keys().collect::<Vec<&String>>()); + } -#[test] -fn buckets_simple_recurring_event() { - use testdata; - use std::path::PathBuf; - - let path = PathBuf::from("test/path"); - let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_RECUR, Some(&path)).unwrap(); - - let event = cal.get_principal_event(); - let event_buckets = event.get_buckets().unwrap(); - let cal_buckets = cal.get_buckets().unwrap(); - assert_eq!(event_buckets, cal_buckets); - let mut cal_bucket_names = cal_buckets.keys().collect::<Vec<&String>>(); - cal_bucket_names.sort_unstable(); - assert_eq!(vec!("2018-W41", "2018-W42", "2018-W43", "2018-W44", "2018-W45", "2018-W46", "2018-W47", "2018-W48", "2018-W49", "2018-W50"), cal_bucket_names); + #[test] + fn buckets_simple_recurring_event() { + use testdata; + use std::path::PathBuf; + + let path = PathBuf::from("test/path"); + let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_RECUR, Some(&path)).unwrap(); + + let event = cal.get_principal_event(); + let event_buckets = event.get_buckets().unwrap(); + let cal_buckets = cal.get_buckets().unwrap(); + assert_eq!(event_buckets, cal_buckets); + let mut cal_bucket_names = cal_buckets.keys().collect::<Vec<&String>>(); + cal_bucket_names.sort_unstable(); + assert_eq!(vec!("2018-W41", "2018-W42", "2018-W43", "2018-W44", "2018-W45", "2018-W46", "2018-W47", "2018-W48", "2018-W49", "2018-W50"), cal_bucket_names); + } } diff --git a/src/actions/new.rs b/src/actions/new.rs index 97cdcfe..2a3b0be 100644 --- a/src/actions/new.rs +++ b/src/actions/new.rs @@ -119,7 +119,7 @@ static TEMPLATE_EVENT: &str = indoc!(" "); #[cfg(test)] -mod tests { +mod integration { use assert_fs::prelude::*; use chrono::{TimeZone,Local}; use predicates::prelude::*; diff --git a/src/actions/seq.rs b/src/actions/seq.rs index a6045f7..1b12751 100644 --- a/src/actions/seq.rs +++ b/src/actions/seq.rs @@ -34,7 +34,7 @@ fn write_seqfile_to_stdout() { } #[cfg(test)] -mod tests { +mod integration { use super::*; use assert_fs::prelude::*; diff --git a/src/actions/show.rs b/src/actions/show.rs index 00f4626..7b0ccb1 100644 --- a/src/actions/show.rs +++ b/src/actions/show.rs @@ -15,7 +15,7 @@ pub fn do_show(_args: &[&str]) -> KhResult<()> { } #[cfg(test)] -mod tests { +mod integration { use super::*; use testutils::*; diff --git a/src/selectors/cal.rs b/src/selectors/cal.rs index 047a750..234cdb2 100644 --- a/src/selectors/cal.rs +++ b/src/selectors/cal.rs @@ -33,29 +33,29 @@ impl Default for CalendarFilter { } #[cfg(test)] -use super::test::test_filter_event; -#[cfg(test)] -use testdata; -#[cfg(test)] -use std::path::PathBuf; - -#[test] -fn test_cal_first() { - let path1 = PathBuf::from("test/cal1/event1.ics"); - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path1), &["cal", "cal1", "cal", "cal2"]); - assert!(filtered); -} +mod tests { + use super::test::test_filter_event; + use testdata; + use std::path::PathBuf; + + #[test] + fn test_cal_first() { + let path1 = PathBuf::from("test/cal1/event1.ics"); + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path1), &["cal", "cal1", "cal", "cal2"]); + assert!(filtered); + } -#[test] -fn test_cal_second() { - let path2 = PathBuf::from("test/cal2/event2.ics"); - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path2), &["cal", "cal1", "cal", "cal2"]); - assert!(filtered); -} + #[test] + fn test_cal_second() { + let path2 = PathBuf::from("test/cal2/event2.ics"); + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path2), &["cal", "cal1", "cal", "cal2"]); + assert!(filtered); + } -#[test] -fn test_cal_negative() { - let path3 = PathBuf::from("test/cal3/event3.ics"); - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path3), &["cal", "cal1", "cal", "cal2"]); - assert!(!filtered); + #[test] + fn test_cal_negative() { + let path3 = PathBuf::from("test/cal3/event3.ics"); + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, Some(&path3), &["cal", "cal1", "cal", "cal2"]); + assert!(!filtered); + } } diff --git a/src/selectors/daterange.rs b/src/selectors/daterange.rs index 3a5c476..d8578e7 100644 --- a/src/selectors/daterange.rs +++ b/src/selectors/daterange.rs @@ -94,68 +94,69 @@ impl Default for SelectFilterFrom { } #[cfg(test)] -use super::test::test_filter_event; -#[cfg(test)] -use testdata; -#[test] -fn test_from_ends_before() { - // DTSTART: 2007-06-28 - // DTEND: 2007-07-09 - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-08-01"]); - assert_eq!(false, filtered) -} -#[test] -fn test_from_begins_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-06-01"]); - assert_eq!(true, filtered); -} -#[test] -fn test_from_begins_before_ends_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-07-01"]); - assert_eq!(true, filtered); -} -#[test] -fn test_from_week_before() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-W17" ]); - assert_eq!(true, filtered); -} -#[test] -fn test_from_week_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-W30" ]); - assert_eq!(false, filtered); -} -#[test] -fn test_from_redundant() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-06-01", "from", "2007-08-01"]); - assert_eq!(false, filtered); -} -#[test] -fn test_to_ends_before() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-08-01"]); - assert_eq!(true, filtered); -} -#[test] -fn test_to_begins_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-06-01"]); - assert_eq!(false, filtered); -} -#[test] -fn test_to_begins_before_ends_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-07-01"]); - assert_eq!(true, filtered); -} -#[test] -fn test_to_week_before() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-W17" ]); - assert_eq!(false, filtered); -} -#[test] -fn test_to_week_after() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-W30" ]); - assert_eq!(true, filtered); -} -#[test] -fn test_to_begins_redundant() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-06-01", "to", "2007-08-01"]); - assert_eq!(false, filtered); +mod tests { + use selectors::test::test_filter_event; + use testdata; + #[test] + fn test_from_ends_before() { + // DTSTART: 2007-06-28 + // DTEND: 2007-07-09 + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-08-01"]); + assert_eq!(false, filtered) + } + #[test] + fn test_from_begins_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-06-01"]); + assert_eq!(true, filtered); + } + #[test] + fn test_from_begins_before_ends_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-07-01"]); + assert_eq!(true, filtered); + } + #[test] + fn test_from_week_before() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-W17" ]); + assert_eq!(true, filtered); + } + #[test] + fn test_from_week_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-W30" ]); + assert_eq!(false, filtered); + } + #[test] + fn test_from_redundant() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["from", "2007-06-01", "from", "2007-08-01"]); + assert_eq!(false, filtered); + } + #[test] + fn test_to_ends_before() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-08-01"]); + assert_eq!(true, filtered); + } + #[test] + fn test_to_begins_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-06-01"]); + assert_eq!(false, filtered); + } + #[test] + fn test_to_begins_before_ends_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-07-01"]); + assert_eq!(true, filtered); + } + #[test] + fn test_to_week_before() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-W17" ]); + assert_eq!(false, filtered); + } + #[test] + fn test_to_week_after() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-W30" ]); + assert_eq!(true, filtered); + } + #[test] + fn test_to_begins_redundant() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["to", "2007-06-01", "to", "2007-08-01"]); + assert_eq!(false, filtered); + } } diff --git a/src/selectors/prop.rs b/src/selectors/prop.rs index d19c7ed..8012665 100644 --- a/src/selectors/prop.rs +++ b/src/selectors/prop.rs @@ -42,25 +42,25 @@ impl Default for PropFilter { } #[cfg(test)] -use super::test::test_filter_event; -#[cfg(test)] -use testdata; +mod tests { + use super::test::test_filter_event; + use testdata; -#[test] -fn test_prop() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "TRANSP", "TRANSPARENT"]); - assert_eq!(true, filtered); -} + #[test] + fn test_prop() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "TRANSP", "TRANSPARENT"]); + assert_eq!(true, filtered); + } -#[test] -fn test_prop_nocase() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "tRaNsP", "tRaNsPaReNt"]); - assert_eq!(true, filtered); -} + #[test] + fn test_prop_nocase() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "tRaNsP", "tRaNsPaReNt"]); + assert_eq!(true, filtered); + } -#[test] -fn test_prop_negative() { - let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "TRANSP", "nonexistent term"]); - assert_eq!(false, filtered); + #[test] + fn test_prop_negative() { + let filtered = test_filter_event(&testdata::TEST_EVENT_MULTIDAY, None, &["prop", "TRANSP", "nonexistent term"]); + assert_eq!(false, filtered); + } } - diff --git a/src/selectors/range.rs b/src/selectors/range.rs index 0c52b3d..ed7f740 100644 --- a/src/selectors/range.rs +++ b/src/selectors/range.rs @@ -27,7 +27,7 @@ impl FromStr for RangeFilter { } #[cfg(test)] -mod test { +mod tests { use selectors::test::test_filter_event_index; use testdata; diff --git a/src/selectors/test.rs b/src/selectors/test.rs index f8e2dbd..2dddb87 100644 --- a/src/selectors/test.rs +++ b/src/selectors/test.rs @@ -16,11 +16,15 @@ pub fn test_filter_event_index(event_str: &str, index: usize, args: &[&str]) -> filters.is_selected_index(index, &event) } -#[test] -fn test_parse_range_check() { - let args = &["1:5"]; - let ok = SelectFilters::parse_from_args_with_range(args); - let err = SelectFilters::parse_from_args(args); - assert!(ok.is_ok()); - assert!(err.is_err()); +mod tests { + use super::*; + + #[test] + fn test_parse_range_check() { + let args = &["1:5"]; + let ok = SelectFilters::parse_from_args_with_range(args); + let err = SelectFilters::parse_from_args(args); + assert!(ok.is_ok()); + assert!(err.is_err()); + } } |