aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMelody Horn <melody@boringcactus.com>2021-04-04 15:37:47 -0600
committerMelody Horn <melody@boringcactus.com>2021-04-04 15:37:47 -0600
commit813049bf86f73015b6656cca38364df5aa06b098 (patch)
tree1094229ab2e650253f514effaf74102289f47f0d
parent050a3b166123be17c8dfdbd47e1b439040101884 (diff)
downloadmakers-813049bf86f73015b6656cca38364df5aa06b098.tar.gz
makers-813049bf86f73015b6656cca38364df5aa06b098.zip
add more function tests
-rw-r--r--src/makefile/functions.rs96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/makefile/functions.rs b/src/makefile/functions.rs
index 9cd78f8..6e04b7a 100644
--- a/src/makefile/functions.rs
+++ b/src/makefile/functions.rs
@@ -373,6 +373,13 @@ mod test {
}
#[test]
+ fn strip() -> R {
+ let result = call!(strip " this is\tweirdly spaced text ");
+ assert_eq!(result, "this is weirdly spaced text");
+ Ok(())
+ }
+
+ #[test]
fn filter() -> R {
let result = call!(filter "word", "this contains a word inside it");
assert_eq!(result, "word");
@@ -447,6 +454,95 @@ mod test {
}
#[test]
+ fn test_if() -> R {
+ let mut macros = MacroSet::new();
+ macros.set(
+ "test1".to_owned(),
+ MacroSource::File,
+ TokenString::text("something"),
+ );
+ macros.set("test2".to_owned(), MacroSource::File, TokenString::text(""));
+
+ assert_eq!(
+ call(
+ "if",
+ &[
+ TokenString::r#macro("test1"),
+ TokenString::text("success"),
+ TokenString::r#macro("failed"),
+ ],
+ &macros
+ )?,
+ "success"
+ );
+ assert_eq!(
+ call(
+ "if",
+ &[
+ TokenString::r#macro("test2"),
+ "$(error failed)".parse()?,
+ TokenString::text("pass"),
+ ],
+ &macros
+ )?,
+ "pass"
+ );
+ Ok(())
+ }
+
+ #[test]
+ fn or() -> R {
+ assert_eq!(
+ call(
+ "or",
+ &[TokenString::text("yep"), TokenString::text("yeah")],
+ &MacroSet::new()
+ )?,
+ "yep"
+ );
+ assert_eq!(
+ call(
+ "or",
+ &[
+ TokenString::text(""),
+ TokenString::text("yeet"),
+ "$(error fail)".parse().unwrap()
+ ],
+ &MacroSet::new()
+ )?,
+ "yeet"
+ );
+
+ Ok(())
+ }
+
+ #[test]
+ fn and() -> R {
+ assert_eq!(
+ call(
+ "and",
+ &[TokenString::text("yep"), TokenString::text("yeah")],
+ &MacroSet::new()
+ )?,
+ "yeah"
+ );
+ assert_eq!(
+ call(
+ "and",
+ &[
+ TokenString::text("maybe"),
+ TokenString::text(""),
+ "$(error fail)".parse().unwrap()
+ ],
+ &MacroSet::new()
+ )?,
+ ""
+ );
+
+ Ok(())
+ }
+
+ #[test]
fn foreach() -> R {
let mut macros = MacroSet::new();
macros.set(