Skip to content

Commit

Permalink
chore: use the rule_true macro in test cases for string and `time…
Browse files Browse the repository at this point in the history
…` modules
  • Loading branch information
plusvic committed Dec 20, 2023
1 parent 8cbe54e commit f75e6d0
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 43 deletions.
67 changes: 42 additions & 25 deletions yara-x/src/modules/string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,36 +34,53 @@ fn length(ctx: &ScanContext, string: RuntimeString) -> Option<i64> {

#[cfg(test)]
mod tests {
use crate::tests::rule_false;
use crate::tests::rule_true;
use crate::tests::test_rule;

#[test]
fn end2end() {
let rules = crate::compile(
r#"import "string"
// True
rule rule_1 { condition: string.length("AXsx00ERS") == 9 }
rule rule_2 { condition: string.length("AXsx00ERS") == 9 }
// False
rule rule_3 { condition: string.length("AXsx00ERS") > 9 }
rule rule_4 { condition: string.length("AXsx00ERS") < 9 }
fn length() {
rule_true!(
r#"rule test { condition: string.length("AXsx00ERS") == 9 }"#,
&[]
);

rule_false!(
r#"rule test { condition: string.length("AXsx00ERS") > 9 }"#,
&[]
);

rule_false!(
r#"rule test { condition: string.length("AXsx00ERS") < 9 }"#,
&[]
);
}

#[test]
fn to_int() {
rule_true!(
r#"rule test { condition: string.to_int("1234") == 1234 }"#,
&[]
);

// True
rule rule_5 { condition: string.to_int("1234") == 1234 }
rule rule_6 { condition: string.to_int("-10") == -10 }
// False
rule rule_7 { condition: string.to_int("-10") == -8 }
rule_true!(
r#"rule test { condition: string.to_int("-10") == -10 }"#,
&[]
);

// True
rule rule_8 { condition: string.to_int("A", 16) == 10 }
rule rule_9 { condition: string.to_int("011", 8) == 9 }
// False
rule rule_10 { condition: string.to_int("-011", 0) == -9 }
"#,
)
.unwrap();
rule_true!(
r#"rule test { condition: string.to_int("A", 16) == 10 }"#,
&[]
);

let mut scanner = crate::scanner::Scanner::new(&rules);
rule_true!(
r#"rule test { condition: string.to_int("011", 8) == 9 }"#,
&[]
);

assert_eq!(scanner.scan(&[]).unwrap().matching_rules().len(), 6);
rule_true!(
r#"rule test { condition: string.to_int("-011", 8) == -9 }"#,
&[]
);
}
}
28 changes: 10 additions & 18 deletions yara-x/src/modules/time.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,16 @@ fn now(_ctx: &ScanContext) -> Option<i64> {

#[cfg(test)]
mod tests {
#[test]
fn end2end() {
let mut compiler = crate::compiler::Compiler::new();

compiler
.add_source(
r#"import "time"
rule rule_1 { condition: time.now() >= 0 }
rule rule_2 { condition: time.now() <= 0 }
rule rule_3 { condition: time.now() != 0 }
rule rule_4 { condition: time.now() == 0 }
"#,
)
.unwrap();
use crate::tests::rule_true;
use crate::tests::test_rule;

let rules = compiler.build();
let mut scanner = crate::scanner::Scanner::new(&rules);

assert_eq!(scanner.scan(&[]).unwrap().matching_rules().len(), 2);
#[test]
fn now() {
rule_true!(
r#"
import "time"
rule test { condition: time.now() >= 0 }"#,
&[]
);
}
}

0 comments on commit f75e6d0

Please sign in to comment.