From 603f040b97970d7df7a75e7f5448ab6c92126986 Mon Sep 17 00:00:00 2001 From: southerntofu Date: Wed, 1 Jul 2020 17:17:54 +0200 Subject: [PATCH] Some tests --- src/db.rs | 35 +++++++++++++++++++++++++++++------ tests/no_source | 3 +++ tests/success/no_source | 1 + tests/success/symlink | 1 + tests/success/symlink.source | 1 + tests/success/task | 1 + tests/success/task.source | 1 + tests/symlink | 1 + tests/symlink.source | 1 + tests/task | 3 +++ tests/task.source | 1 + tests/wrong_source | 3 +++ tests/wrong_source.source | 1 + 13 files changed, 47 insertions(+), 6 deletions(-) create mode 100755 tests/no_source create mode 120000 tests/success/no_source create mode 120000 tests/success/symlink create mode 120000 tests/success/symlink.source create mode 120000 tests/success/task create mode 120000 tests/success/task.source create mode 120000 tests/symlink create mode 120000 tests/symlink.source create mode 100755 tests/task create mode 100644 tests/task.source create mode 100755 tests/wrong_source create mode 100644 tests/wrong_source.source diff --git a/src/db.rs b/src/db.rs index bc25616..d886480 100644 --- a/src/db.rs +++ b/src/db.rs @@ -41,10 +41,10 @@ pub fn entry(basedir: &str, filter: impl Fn(&Path) -> bool, name: &str) -> Optio } Some(Entry::new( - path.clone(), - path.file_name().expect("Failed to read file name").to_os_string(), - basepath - )) + path.clone(), + path.file_name().expect("Failed to read file name").to_os_string(), + basepath + )) } /// Loads entire database from folder @@ -68,8 +68,8 @@ pub fn from(path_name: &str, filter: impl Fn(&Path) -> bool) -> Result bool { } } } + + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn can_load_db() { + let base_dir = "tests/success"; + let entries = from(base_dir, is_executable).expect("Could not load db"); + let entries_names: Vec = entries.iter().map(|x| x.name.clone().into_string().unwrap()).collect(); + + let expected: Vec = vec!("task", "symlink", "no_source").iter().map(|x| x.to_string()).collect(); + + assert_eq!(expected.len(), entries_names.len()); + + for entry in expected { + if !entries_names.contains(&entry.to_string()) { + panic!("Could not find {}", &entry); + } + } + } +} diff --git a/tests/no_source b/tests/no_source new file mode 100755 index 0000000..912edd0 --- /dev/null +++ b/tests/no_source @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "LOL sourceless task" diff --git a/tests/success/no_source b/tests/success/no_source new file mode 120000 index 0000000..8c07655 --- /dev/null +++ b/tests/success/no_source @@ -0,0 +1 @@ +../no_source \ No newline at end of file diff --git a/tests/success/symlink b/tests/success/symlink new file mode 120000 index 0000000..54f9399 --- /dev/null +++ b/tests/success/symlink @@ -0,0 +1 @@ +../symlink \ No newline at end of file diff --git a/tests/success/symlink.source b/tests/success/symlink.source new file mode 120000 index 0000000..b550562 --- /dev/null +++ b/tests/success/symlink.source @@ -0,0 +1 @@ +../symlink.source \ No newline at end of file diff --git a/tests/success/task b/tests/success/task new file mode 120000 index 0000000..99d9d8c --- /dev/null +++ b/tests/success/task @@ -0,0 +1 @@ +../task \ No newline at end of file diff --git a/tests/success/task.source b/tests/success/task.source new file mode 120000 index 0000000..837fe91 --- /dev/null +++ b/tests/success/task.source @@ -0,0 +1 @@ +../task.source \ No newline at end of file diff --git a/tests/symlink b/tests/symlink new file mode 120000 index 0000000..c077ac0 --- /dev/null +++ b/tests/symlink @@ -0,0 +1 @@ +task \ No newline at end of file diff --git a/tests/symlink.source b/tests/symlink.source new file mode 120000 index 0000000..b127a91 --- /dev/null +++ b/tests/symlink.source @@ -0,0 +1 @@ +task.source \ No newline at end of file diff --git a/tests/task b/tests/task new file mode 100755 index 0000000..b35ad78 --- /dev/null +++ b/tests/task @@ -0,0 +1,3 @@ +#! /bin/bash + +echo Hello diff --git a/tests/task.source b/tests/task.source new file mode 100644 index 0000000..b512f3c --- /dev/null +++ b/tests/task.source @@ -0,0 +1 @@ +https://tildegit.org/southerntofu/git-build.sh diff --git a/tests/wrong_source b/tests/wrong_source new file mode 100755 index 0000000..24ddc92 --- /dev/null +++ b/tests/wrong_source @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "Ce script ne devrait jamais être exécuté" diff --git a/tests/wrong_source.source b/tests/wrong_source.source new file mode 100644 index 0000000..926881f --- /dev/null +++ b/tests/wrong_source.source @@ -0,0 +1 @@ +SDJSQKLDJQKLSDJQS