summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <look@my.amazin.horse>2019-01-28 14:10:29 +0100
committerVincent Breitmoser <look@my.amazin.horse>2019-01-28 14:34:26 +0100
commit456cdbd902a13168d29f8b3c29c7d924cd8d5fdb (patch)
treed3669062642935ec7f397ef4280144bd6e49d97e
parent7fe92b1f2feb8856dd9369f221dd462e82bf6dcc (diff)
ci: filter integration and unit tests by module name
-rw-r--r--.circleci/config.yml27
-rw-r--r--src/actions/agenda.rs2
-rw-r--r--src/actions/calendars.rs2
-rw-r--r--src/actions/copy.rs2
-rw-r--r--src/actions/cursor.rs2
-rw-r--r--src/actions/edit.rs2
-rw-r--r--src/actions/get.rs2
-rw-r--r--src/actions/index/action.rs2
-rw-r--r--src/actions/index/bucketable.rs101
-rw-r--r--src/actions/new.rs2
-rw-r--r--src/actions/seq.rs2
-rw-r--r--src/actions/show.rs2
-rw-r--r--src/selectors/cal.rs46
-rw-r--r--src/selectors/daterange.rs129
-rw-r--r--src/selectors/prop.rs36
-rw-r--r--src/selectors/range.rs2
-rw-r--r--src/selectors/test.rs18
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());
+ }
}