mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-30 00:55:18 +02:00
fix(generic-snmp): unit tests are back
This commit is contained in:
parent
fdf86d33ca
commit
2f3eed6050
@ -56,13 +56,20 @@ impl<'a> Parser<'a> {
|
|||||||
|
|
||||||
mod Test {
|
mod Test {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use snmp::SnmpItem;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn term() {
|
fn term() {
|
||||||
let lexer = lexer::Lexer::new("123");
|
let lexer = lexer::Lexer::new("123");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 123_f32);
|
let snmp_result = vec![];
|
||||||
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 123_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
let lexer = lexer::Lexer::new("123");
|
let lexer = lexer::Lexer::new("123");
|
||||||
assert!(grammar::ExprParser::new().parse(lexer).is_ok());
|
assert!(grammar::ExprParser::new().parse(lexer).is_ok());
|
||||||
let lexer = lexer::Lexer::new("(((123))");
|
let lexer = lexer::Lexer::new("(((123))");
|
||||||
@ -75,27 +82,48 @@ mod Test {
|
|||||||
let lexer = lexer::Lexer::new("1 + 2");
|
let lexer = lexer::Lexer::new("1 + 2");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 3_f32);
|
let snmp_result = vec![];
|
||||||
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 3_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("1 + 2 - 3");
|
let lexer = lexer::Lexer::new("1 + 2 - 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 0_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 0_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("1 - 2 + 3");
|
let lexer = lexer::Lexer::new("1 - 2 + 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 2_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 2_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("1 - (2 + 3)");
|
let lexer = lexer::Lexer::new("1 - (2 + 3)");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == -4_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == -4_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("1 - (2 + (3 - (4 + (5 - (6 + 7)))))");
|
let lexer = lexer::Lexer::new("1 - (2 + (3 - (4 + (5 - (6 + 7)))))");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!((res.unwrap()).eval() == -8_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == -8_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -103,27 +131,48 @@ mod Test {
|
|||||||
let lexer = lexer::Lexer::new("2 * 3");
|
let lexer = lexer::Lexer::new("2 * 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 6_f32);
|
let snmp_result = vec![];
|
||||||
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 6_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("1 + 2 * 3");
|
let lexer = lexer::Lexer::new("1 + 2 * 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 7_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 7_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("(1 + 2) * 3");
|
let lexer = lexer::Lexer::new("(1 + 2) * 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 9_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 9_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("2 * 3 * 4");
|
let lexer = lexer::Lexer::new("2 * 3 * 4");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 24_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 24_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("2 * 3 / 2");
|
let lexer = lexer::Lexer::new("2 * 3 / 2");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 3_f32);
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 3_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
// We have an issue with 2/0, I know it but we'll fix it later.
|
// We have an issue with 2/0, I know it but we'll fix it later.
|
||||||
}
|
}
|
||||||
@ -133,7 +182,12 @@ mod Test {
|
|||||||
let lexer = lexer::Lexer::new("1 + (3 + 2 * 3) / 3");
|
let lexer = lexer::Lexer::new("1 + (3 + 2 * 3) / 3");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
assert!(res.unwrap().eval() == 4_f32);
|
let snmp_result = vec![];
|
||||||
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 4_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -142,7 +196,13 @@ mod Test {
|
|||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
assert!(res.is_ok());
|
assert!(res.is_ok());
|
||||||
println!("{:?}", res);
|
println!("{:?}", res);
|
||||||
assert!(res.unwrap().eval() == 1_f32);
|
let items = HashMap::from([("abc".to_string(), SnmpItem::Nbr(vec![1_f64]))]);
|
||||||
|
let snmp_result = vec![SnmpResult::new(items)];
|
||||||
|
let res = res.unwrap().eval(&snmp_result);
|
||||||
|
match res {
|
||||||
|
ExprResult::Scalar(n) => assert!(n == 2_f64),
|
||||||
|
_ => panic!("Expected a scalar value"),
|
||||||
|
}
|
||||||
|
|
||||||
let lexer = lexer::Lexer::new("abc + 1");
|
let lexer = lexer::Lexer::new("abc + 1");
|
||||||
let res = grammar::ExprParser::new().parse(lexer);
|
let res = grammar::ExprParser::new().parse(lexer);
|
||||||
|
@ -34,6 +34,15 @@ pub struct SnmpResult {
|
|||||||
last_oid: Vec<u32>,
|
last_oid: Vec<u32>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl SnmpResult {
|
||||||
|
pub fn new(items: HashMap<String, SnmpItem>) -> SnmpResult {
|
||||||
|
SnmpResult {
|
||||||
|
items,
|
||||||
|
last_oid: Vec::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//pub fn snmp_get(target: &str, oid: &str, community: &str) -> SnmpResult {
|
//pub fn snmp_get(target: &str, oid: &str, community: &str) -> SnmpResult {
|
||||||
// let oid_tab = oid
|
// let oid_tab = oid
|
||||||
// .split('.')
|
// .split('.')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user