Require quotes around string values in set
This change makes it more consistent with string key values: these also
have to be quoted. It will also help me reuse the leaf_data parser for
the key values.
Change-Id: I5647403648830614d308073be6fb4f1f5469dcb2
diff --git a/tests/leaf_editing.cpp b/tests/leaf_editing.cpp
index ab5e6bd..d7703c0 100644
--- a/tests/leaf_editing.cpp
+++ b/tests/leaf_editing.cpp
@@ -58,32 +58,48 @@
{
set_ expected;
- SECTION("set mod:leafString some_data")
+ SECTION("set mod:leafString \"some_data\"")
{
- input = "set mod:leafString some_data";
+ input = "set mod:leafString \'some_data\'";
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("leafString")});
expected.m_data = std::string("some_data");
}
- SECTION("set mod:contA/leafInCont more_data")
+ SECTION("set mod:contA/leafInCont 'more_data'")
{
- input = "set mod:contA/leafInCont more_data";
+ input = "set mod:contA/leafInCont 'more_data'";
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
expected.m_data = std::string("more_data");
}
- SECTION("set mod:contA/leafInCont more d\tata") // spaces in string
+ SECTION("set mod:contA/leafInCont \"data with' a quote\"")
{
- input = "set mod:contA/leafInCont more d\tata";
+ input = "set mod:contA/leafInCont \"data with' a quote\"";
+ expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
+ expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
+ expected.m_data = std::string("data with' a quote");
+ }
+
+ SECTION("set mod:contA/leafInCont 'data with\" a quote'")
+ {
+ input = "set mod:contA/leafInCont 'data with\" a quote'";
+ expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
+ expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
+ expected.m_data = std::string("data with\" a quote");
+ }
+
+ SECTION("set mod:contA/leafInCont 'more d\tata'") // spaces in string
+ {
+ input = "set mod:contA/leafInCont 'more d\tata'";
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
expected.m_data = std::string("more d\tata");
}
- SECTION("set mod:list[number=1]/leafInList another_data")
+ SECTION("set mod:list[number=1]/leafInList \"another_data\"")
{
- input = "set mod:list[number=1]/leafInList another_data";
+ input = "set mod:list[number=1]/leafInList \"another_data\"";
auto keys = std::map<std::string, std::string>{
{"number", "1"}};
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, listElement_("list", keys)});
@@ -95,7 +111,7 @@
{
SECTION("string")
{
- input = "set mod:leafString somedata";
+ input = "set mod:leafString \"somedata\"";
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("leafString")});
expected.m_data = std::string("somedata");
}
@@ -285,7 +301,7 @@
{
SECTION("refToString")
{
- input = "set mod:refToString blabal";
+ input = "set mod:refToString \"blabal\"";
expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("refToString")});
expected.m_data = std::string("blabal");
}
@@ -311,85 +327,85 @@
{
SECTION("setmod:leafString some_data")
{
- input = "setmod:leafString some_data";
+ input = "setmod:leafString 'some_data'";
}
}
SECTION("missing space between arguments")
{
- SECTION("set mod:leafStringlol")
+ SECTION("set mod:leafString'lol'")
{
- input = "set mod:leafStringlol";
+ input = "set mod:leafString'lol'";
}
}
SECTION("non-leaf identifiers")
{
- SECTION("set mod:nonexistent blabla")
+ SECTION("set mod:nonexistent 'blabla'")
{
- input = "set mod:nonexistent blabla";
+ input = "set mod:nonexistent 'blabla'";
}
- SECTION("set mod:contA abde")
+ SECTION("set mod:contA 'abde'")
{
- input = "set mod:contA abde";
+ input = "set mod:contA 'abde'";
}
}
SECTION("wrong types")
{
expectedError = "leaf data type mismatch";
- SECTION("set mod:leafBool blabla")
+ SECTION("set mod:leafBool 'blabla'")
{
- input = "set mod:leafBool blabla";
+ input = "set mod:leafBool 'blabla'";
}
- SECTION("set mod:leafUint8 blabla")
+ SECTION("set mod:leafUint8 'blabla'")
{
- input = "set mod:leafUint8 blabla";
+ input = "set mod:leafUint8 'blabla'";
}
SECTION("set mod:leafUint8 -5")
{
input = "set mod:leafUint8 -5";
}
- SECTION("set mod:leafInt8 blabla")
+ SECTION("set mod:leafInt8 'blabla'")
{
- input = "set mod:leafInt8 blabla";
+ input = "set mod:leafInt8 'blabla'";
}
SECTION("set mod:leafInt8 130")
{
input = "set mod:leafInt8 130";
}
- SECTION("set mod:leafUint16 blabla")
+ SECTION("set mod:leafUint16 'blabla'")
{
- input = "set mod:leafUint16 blabla";
+ input = "set mod:leafUint16 'blabla'";
}
- SECTION("set mod:leafInt16 blabla")
+ SECTION("set mod:leafInt16 'blabla'")
{
- input = "set mod:leafInt16 blabla";
+ input = "set mod:leafInt16 'blabla'";
}
- SECTION("set mod:leafUint32 blabla")
+ SECTION("set mod:leafUint32 'blabla'")
{
- input = "set mod:leafUint32 blabla";
+ input = "set mod:leafUint32 'blabla'";
}
- SECTION("set mod:leafInt32 blabla")
+ SECTION("set mod:leafInt32 'blabla'")
{
- input = "set mod:leafInt32 blabla";
+ input = "set mod:leafInt32 'blabla'";
}
- SECTION("set mod:leafUint64 blabla")
+ SECTION("set mod:leafUint64 'blabla'")
{
- input = "set mod:leafUint64 blabla";
+ input = "set mod:leafUint64 'blabla'";
}
- SECTION("set mod:leafInt64 blabla")
+ SECTION("set mod:leafInt64 'blabla'")
{
- input = "set mod:leafInt64 blabla";
+ input = "set mod:leafInt64 'blabla'";
}
- SECTION("set mod:leafEnum blabla")
+ SECTION("set mod:leafEnum 'blabla'")
{
- input = "set mod:leafEnum blabla";
+ input = "set mod:leafEnum 'blabla'";
}
- SECTION("set mod:refToInt8 blabla")
+ SECTION("set mod:refToInt8 'blabla'")
{
- input = "set mod:refToInt8 blabla";
+ input = "set mod:refToInt8 'blabla'";
}
}
@@ -399,6 +415,8 @@
input = "set mod:leafBinary dbahj-";
SECTION("equal sign in the middle")
input = "set mod:leafBinary db=ahj";
+ SECTION("enclosing in quotes")
+ input = "set mod:leafBinary 'dbahj'";
}
SECTION("non-existing identity")