Remove implicit conversions
Implicit conversions are something that nlohmann library itself is a bad
default, and 3 years ago threatened to change the default. These
implicit conversions cause a number of crashes that are hard to
reproduce, because they throw an uncaught exception.
Update the code to be able to do no more implicit conversions.
Tested: Entity-manager launches and runs. Items are detected correctly
and show up on dbus. Unit tests pass.
Change-Id: Ib23159ae58f5584641427d9be7545bc25a3619af
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/test/entity_manager/test_entity-manager.cpp b/test/entity_manager/test_entity-manager.cpp
index cc59e44..397861d 100644
--- a/test/entity_manager/test_entity-manager.cpp
+++ b/test/entity_manager/test_entity-manager.cpp
@@ -13,11 +13,10 @@
TEST(TemplateCharReplace, replaceOneInt)
{
nlohmann::json j = {{"foo", "$bus"}};
- auto it = j.begin();
DBusInterface data;
data["BUS"] = 23;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = 23;
EXPECT_EQ(expected, j["foo"]);
@@ -26,11 +25,10 @@
TEST(TemplateCharReplace, replaceOneStr)
{
nlohmann::json j = {{"foo", "$TEST"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = std::string("Test");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "Test";
EXPECT_EQ(expected, j["foo"]);
@@ -39,11 +37,10 @@
TEST(TemplateCharReplace, replaceSecondStr)
{
nlohmann::json j = {{"foo", "the $TEST"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = std::string("Test");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "the Test";
EXPECT_EQ(expected, j["foo"]);
@@ -52,11 +49,10 @@
TEST(TemplateCharReplace, replaceMiddleStr)
{
nlohmann::json j = {{"foo", "the $TEST worked"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = std::string("Test");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "the Test worked";
EXPECT_EQ(expected, j["foo"]);
@@ -65,11 +61,10 @@
TEST(TemplateCharReplace, replaceLastStr)
{
nlohmann::json j = {{"foo", "the Test $TEST"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 23;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "the Test 23";
EXPECT_EQ(expected, j["foo"]);
@@ -78,11 +73,10 @@
TEST(TemplateCharReplace, increment)
{
nlohmann::json j = {{"foo", "3 plus 1 equals $TEST + 1"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 3;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "3 plus 1 equals 4";
EXPECT_EQ(expected, j["foo"]);
@@ -91,11 +85,10 @@
TEST(TemplateCharReplace, decrement)
{
nlohmann::json j = {{"foo", "3 minus 1 equals $TEST - 1 !"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 3;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "3 minus 1 equals 2 !";
EXPECT_EQ(expected, j["foo"]);
@@ -104,11 +97,10 @@
TEST(TemplateCharReplace, modulus)
{
nlohmann::json j = {{"foo", "3 mod 2 equals $TEST % 2"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 3;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "3 mod 2 equals 1";
EXPECT_EQ(expected, j["foo"]);
@@ -117,11 +109,10 @@
TEST(TemplateCharReplace, multiply)
{
nlohmann::json j = {{"foo", "3 * 2 equals $TEST * 2"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 3;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "3 * 2 equals 6";
EXPECT_EQ(expected, j["foo"]);
@@ -130,11 +121,10 @@
TEST(TemplateCharReplace, divide)
{
nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 4;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "4 / 2 equals 2";
EXPECT_EQ(expected, j["foo"]);
@@ -143,11 +133,10 @@
TEST(TemplateCharReplace, multiMath)
{
nlohmann::json j = {{"foo", "4 * 2 % 6 equals $TEST * 2 % 6"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 4;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "4 * 2 % 6 equals 2";
EXPECT_EQ(expected, j["foo"]);
@@ -156,12 +145,11 @@
TEST(TemplateCharReplace, twoReplacements)
{
nlohmann::json j = {{"foo", "$FOO $BAR"}};
- auto it = j.begin();
DBusInterface data;
data["FOO"] = std::string("foo");
data["BAR"] = std::string("bar");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "foo bar";
EXPECT_EQ(expected, j["foo"]);
@@ -170,12 +158,11 @@
TEST(TemplateCharReplace, twoReplacementsWithMath)
{
nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2 $BAR"}};
- auto it = j.begin();
DBusInterface data;
data["TEST"] = 4;
data["BAR"] = std::string("bar");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "4 / 2 equals 2 bar";
}
@@ -183,12 +170,11 @@
TEST(TemplateCharReplace, twoReplacementsWithMath2)
{
nlohmann::json j = {{"foo", "4 / 2 equals $ADDRESS / 2 $BAR"}};
- auto it = j.begin();
DBusInterface data;
data["ADDRESS"] = 4;
data["BAR"] = std::string("bar");
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "4 / 2 equals 2 bar";
EXPECT_EQ(expected, j["foo"]);
@@ -206,7 +192,7 @@
for (auto it = j.begin(); it != j.end(); it++)
{
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
}
nlohmann::json expected = {{"Address", 84},
{"Bus", 15},
@@ -218,11 +204,10 @@
TEST(TemplateCharReplace, replaceSecondAsInt)
{
nlohmann::json j = {{"foo", "twelve is $TEST"}};
- auto it = j.begin();
DBusInterface data;
data["test"] = 12;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = "twelve is 12";
EXPECT_EQ(expected, j["foo"]);
@@ -231,10 +216,9 @@
TEST(TemplateCharReplace, singleHex)
{
nlohmann::json j = {{"foo", "0x54"}};
- auto it = j.begin();
DBusInterface data;
- em_utils::templateCharReplace(it, data, 0);
+ em_utils::templateCharReplace(j, data, 0);
nlohmann::json expected = 84;
EXPECT_EQ(expected, j["foo"]);
@@ -243,7 +227,6 @@
TEST(TemplateCharReplace, leftOverTemplateVars)
{
nlohmann::json j = {{"foo", "$EXISTENT_VAR and $NON_EXISTENT_VAR"}};
- auto it = j.begin();
DBusInterface data;
data["EXISTENT_VAR"] = std::string("Replaced");
@@ -251,7 +234,7 @@
DBusObject object;
object["PATH"] = data;
- em_utils::templateCharReplace(it, object, 0);
+ em_utils::templateCharReplace(j, object, 0);
nlohmann::json expected = "Replaced and ";
EXPECT_EQ(expected, j["foo"]);
@@ -260,9 +243,8 @@
TEST(HandleLeftOverTemplateVars, replaceLeftOverTemplateVar)
{
nlohmann::json j = {{"foo", "the Test $TEST is $TESTED"}};
- auto it = j.begin();
- em_utils::handleLeftOverTemplateVars(it);
+ em_utils::handleLeftOverTemplateVars(j);
nlohmann::json expected = "the Test is ";
EXPECT_EQ(expected, j["foo"]);