diff options
author | Simon THOBY <git@nightmared.fr> | 2022-12-09 23:37:32 +0100 |
---|---|---|
committer | Simon THOBY <git@nightmared.fr> | 2022-12-09 23:37:32 +0100 |
commit | 603d540a45c968ad48071a73e1452f87abea377b (patch) | |
tree | 1ef2823e6f0c7805c61632f971b5fe1279827e3d /tests | |
parent | 5fbf51008eb7e2d55e074cd12c877b59f4a41f79 (diff) |
re-impl the masquerade expression
Diffstat (limited to 'tests')
-rw-r--r-- | tests/expr.rs | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/tests/expr.rs b/tests/expr.rs index 4367116..da98677 100644 --- a/tests/expr.rs +++ b/tests/expr.rs @@ -1,8 +1,8 @@ use rustables::{ expr::{ Bitwise, Cmp, CmpOp, Conntrack, ConntrackKey, Counter, ExpressionList, HeaderField, - HighLevelPayload, IcmpCode, Immediate, Log, Meta, MetaType, Nat, NatType, Register, Reject, - RejectType, TCPHeaderField, TransportHeaderField, VerdictKind, + HighLevelPayload, IcmpCode, Immediate, Log, Masquerade, Meta, MetaType, Nat, NatType, + Register, Reject, RejectType, TCPHeaderField, TransportHeaderField, VerdictKind, }, sys::{ NFTA_BITWISE_DREG, NFTA_BITWISE_LEN, NFTA_BITWISE_MASK, NFTA_BITWISE_SREG, @@ -335,35 +335,36 @@ fn log_expr_is_valid() { // .to_raw() // ); //} -// -//use rustables::expr::Masquerade; -//#[test] -//fn masquerade_expr_is_valid() { -// let masquerade = Masquerade; -// let mut rule = get_test_rule(); -// let (nlmsghdr, _nfgenmsg, raw_expr) = get_test_nlmsg_from_expr(&mut rule, &masquerade); -// assert_eq!(nlmsghdr.nlmsg_len, 76); -// -// assert_eq!( -// raw_expr, -// NetlinkExpr::List(vec![ -// NetlinkExpr::Final(NFTA_RULE_TABLE, TABLE_NAME.to_vec()), -// NetlinkExpr::Final(NFTA_RULE_CHAIN, CHAIN_NAME.to_vec()), -// NetlinkExpr::Nested( -// NFTA_RULE_EXPRESSIONS, -// vec![NetlinkExpr::Nested( -// NFTA_LIST_ELEM, -// vec![ -// NetlinkExpr::Final(NFTA_EXPR_NAME, b"masq\0".to_vec()), -// NetlinkExpr::Nested(NFTA_EXPR_DATA, vec![]), -// ] -// )] -// ) -// ]) -// .to_raw() -// ); -//} -// + +#[test] +fn masquerade_expr_is_valid() { + let masquerade = Masquerade::default(); + let mut rule = get_test_rule().with_expressions(vec![masquerade]); + + let mut buf = Vec::new(); + let (nlmsghdr, _nfgenmsg, raw_expr) = get_test_nlmsg(&mut buf, &mut rule); + assert_eq!(nlmsghdr.nlmsg_len, 72); + + assert_eq!( + raw_expr, + NetlinkExpr::List(vec![ + NetlinkExpr::Final(NFTA_RULE_TABLE, TABLE_NAME.as_bytes().to_vec()), + NetlinkExpr::Final(NFTA_RULE_CHAIN, CHAIN_NAME.as_bytes().to_vec()), + NetlinkExpr::Nested( + NFTA_RULE_EXPRESSIONS, + vec![NetlinkExpr::Nested( + NFTA_LIST_ELEM, + vec![ + NetlinkExpr::Final(NFTA_EXPR_NAME, b"masq".to_vec()), + NetlinkExpr::Nested(NFTA_EXPR_DATA, vec![]), + ] + )] + ) + ]) + .to_raw() + ); +} + #[test] fn meta_expr_is_valid() { let meta = Meta::default() |