boost::shared_ptr<PktType> pkt(new PktType(family == AF_INET ?
DHCPDISCOVER : DHCPV6_SOLICIT,
123));
- EXPECT_FALSE(evaluate(*parsed_expr, *pkt));
+ EXPECT_FALSE(evaluateBool(*parsed_expr, *pkt));
// Now add the option so it will pass. Use a standard option carrying a
// single string value, i.e. hostname for DHCPv4 and bootfile url for
DHO_HOST_NAME : D6O_BOOTFILE_URL,
option_string));
pkt->addOption(opt);
- EXPECT_TRUE(evaluate(*parsed_expr, *pkt));
+ EXPECT_TRUE(evaluateBool(*parsed_expr, *pkt));
}
};
// Build a packet that will fail evaluation.
Pkt4Ptr pkt4(new Pkt4(DHCPDISCOVER, 123));
- EXPECT_FALSE(evaluate(*match_expr, *pkt4));
+ EXPECT_FALSE(evaluateBool(*match_expr, *pkt4));
// Now add the option so it will pass.
OptionPtr opt(new OptionString(Option::V4, 100, "works right"));
pkt4->addOption(opt);
- EXPECT_TRUE(evaluate(*match_expr, *pkt4));
+ EXPECT_TRUE(evaluateBool(*match_expr, *pkt4));
}
// Verifies you can create a class with a name and options,
// Build a packet that will fail evaluation.
Pkt4Ptr pkt4(new Pkt4(DHCPDISCOVER, 123));
- EXPECT_FALSE(evaluate(*match_expr, *pkt4));
+ EXPECT_FALSE(evaluateBool(*match_expr, *pkt4));
// Now add the option so it will pass.
OptionPtr opt(new OptionString(Option::V4, 100, "booya"));
pkt4->addOption(opt);
- EXPECT_TRUE(evaluate(*match_expr, *pkt4));
+ EXPECT_TRUE(evaluateBool(*match_expr, *pkt4));
}
// Verifies that a class with no name, fails to parse.
// This checks the empty expression: it should raise EvalBadStack
// when evaluated with a Pkt4. (The actual packet is not used)
TEST_F(EvaluateTest, empty4) {
- ASSERT_THROW(evaluate(e_, *pkt4_), EvalBadStack);
+ ASSERT_THROW(evaluateBool(e_, *pkt4_), EvalBadStack);
}
// This checks the empty expression: it should raise EvalBadStack
// when evaluated with a Pkt6. (The actual packet is not used)
TEST_F(EvaluateTest, empty6) {
- ASSERT_THROW(evaluate(e_, *pkt6_), EvalBadStack);
+ ASSERT_THROW(evaluateBool(e_, *pkt6_), EvalBadStack);
}
// This checks the { "false" } expression: it should return false
TokenPtr tfalse;
ASSERT_NO_THROW(tfalse.reset(new TokenString("false")));
e_.push_back(tfalse);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_FALSE(result_);
}
TokenPtr tfalse;
ASSERT_NO_THROW(tfalse.reset(new TokenString("false")));
e_.push_back(tfalse);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_FALSE(result_);
}
TokenPtr ttrue;
ASSERT_NO_THROW(ttrue.reset(new TokenString("true")));
e_.push_back(ttrue);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_TRUE(result_);
}
TokenPtr ttrue;
ASSERT_NO_THROW(ttrue.reset(new TokenString("true")));
e_.push_back(ttrue);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_TRUE(result_);
}
TokenPtr bad;
ASSERT_NO_THROW(bad.reset(new TokenString("bad")));
e_.push_back(bad);
- ASSERT_THROW(evaluate(e_, *pkt4_), EvalTypeError);
+ ASSERT_THROW(evaluateBool(e_, *pkt4_), EvalTypeError);
}
// This checks the evaluation must lead to "false" or "true"
TokenPtr bad;
ASSERT_NO_THROW(bad.reset(new TokenString("bad")));
e_.push_back(bad);
- ASSERT_THROW(evaluate(e_, *pkt6_), EvalTypeError);
+ ASSERT_THROW(evaluateBool(e_, *pkt6_), EvalTypeError);
}
// This checks the evaluation must leave only one value on the stack
ASSERT_NO_THROW(ttrue.reset(new TokenString("true")));
e_.push_back(ttrue);
e_.push_back(ttrue);
- ASSERT_THROW(evaluate(e_, *pkt4_), EvalBadStack);
+ ASSERT_THROW(evaluateBool(e_, *pkt4_), EvalBadStack);
}
// This checks the evaluation must leave only one value on the stack
ASSERT_NO_THROW(ttrue.reset(new TokenString("true")));
e_.push_back(ttrue);
e_.push_back(ttrue);
- ASSERT_THROW(evaluate(e_, *pkt6_), EvalBadStack);
+ ASSERT_THROW(evaluateBool(e_, *pkt6_), EvalBadStack);
}
// A more complex test evaluated with a Pkt4. (The actual packet is not used)
ASSERT_NO_THROW(tequal.reset(new TokenEqual()));
e_.push_back(tequal);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_FALSE(result_);
}
ASSERT_NO_THROW(tequal.reset(new TokenEqual()));
e_.push_back(tequal);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_FALSE(result_);
}
ASSERT_NO_THROW(toption.reset(new TokenOption(100, TokenOption::EXISTS)));
e_.push_back(toption);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_TRUE(result_);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_TRUE(result_);
}
ASSERT_NO_THROW(toption.reset(new TokenOption(101, TokenOption::EXISTS)));
e_.push_back(toption);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_FALSE(result_);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_FALSE(result_);
}
ASSERT_NO_THROW(tequal.reset(new TokenEqual()));
e_.push_back(tequal);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_TRUE(result_);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_FALSE(result_);
}
ASSERT_NO_THROW(tequal.reset(new TokenEqual()));
e_.push_back(tequal);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_TRUE(result_);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_FALSE(result_);
}
e_.push_back(tequal);
// Should return true for v4 and v6 packets
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt4_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt4_));
EXPECT_TRUE(result_);
- ASSERT_NO_THROW(result_ = evaluate(e_, *pkt6_));
+ ASSERT_NO_THROW(result_ = evaluateBool(e_, *pkt6_));
EXPECT_TRUE(result_);
}
switch (u) {
case Option::V4:
- ASSERT_NO_THROW(result = evaluate(eval.expression, *pkt4_))
+ ASSERT_NO_THROW(result = evaluateBool(eval.expression, *pkt4_))
<< " for expression " << expr;
break;
case Option::V6:
- ASSERT_NO_THROW(result = evaluate(eval.expression, *pkt6_))
+ ASSERT_NO_THROW(result = evaluateBool(eval.expression, *pkt6_))
<< " for expression " << expr;
break;
}