Implement FLOW_ML style: update tests

This commit is contained in:
Joao Paulo Magalhaes
2025-10-20 11:14:58 +01:00
parent 145d624440
commit 27b56e59e5
34 changed files with 1871 additions and 1158 deletions

View File

@@ -667,9 +667,9 @@ john: doe)";
// root["john"] = ryml::to_csubstr(ok); // don't, will dangle
wroot["john"] << ryml::to_csubstr(ok); // OK, copy to the tree's arena
}
CHECK(root["john"].val() == "in_scope"); // OK!
CHECK(root["john"].val() == "in_scope"); // OK! val is now in the tree's arena
// serializing floating points:
wroot["float"] << 2.4;
wroot["float"] << 2.4f;
// to force a particular precision or float format:
// (see sample_float_precision() and sample_formatting())
wroot["digits"] << ryml::fmt::real(2.4, /*num_digits*/6, ryml::FTOA_FLOAT);
@@ -4032,8 +4032,8 @@ void sample_emit_to_container()
- baz
- bat
)";
auto treea = ryml::parse_in_arena(ymla);
auto treeb = ryml::parse_in_arena(ymlb);
const ryml::Tree treea = ryml::parse_in_arena(ymla);
const ryml::Tree treeb = ryml::parse_in_arena(ymlb);
// eg, std::vector<char>
{
@@ -4150,7 +4150,7 @@ void sample_emit_to_stream()
- baz
- bat
)";
auto tree = ryml::parse_in_arena(ymlb);
const ryml::Tree tree = ryml::parse_in_arena(ymlb);
std::string s;
@@ -4167,7 +4167,32 @@ void sample_emit_to_stream()
std::stringstream ss;
ss << ryml::as_json(tree); // works with any stream having .operator<<() and .write()
s = ss.str();
CHECK(ryml::to_csubstr(s) == R"(["a","b",{"x0": 1,"x1": 2},{"champagne": "Dom Perignon","coffee": "Arabica","more": {"vinho verde": "Soalheiro","vinho tinto": "Redoma 2017"},"beer": ["Rochefort 10","Busch","Leffe Rituel"]},"foo","bar","baz","bat"])");
CHECK(ryml::to_csubstr(s) == R"([
"a",
"b",
{
"x0": 1,
"x1": 2
},
{
"champagne": "Dom Perignon",
"coffee": "Arabica",
"more": {
"vinho verde": "Soalheiro",
"vinho tinto": "Redoma 2017"
},
"beer": [
"Rochefort 10",
"Busch",
"Leffe Rituel"
]
},
"foo",
"bar",
"baz",
"bat"
]
)");
}
// emit a nested node
@@ -4186,7 +4211,11 @@ void sample_emit_to_stream()
std::stringstream ss;
ss << ryml::as_json(tree[3][2]); // works with any stream having .operator<<() and .write()
s = ss.str();
CHECK(ryml::to_csubstr(s) == R"("more": {"vinho verde": "Soalheiro","vinho tinto": "Redoma 2017"})");
CHECK(ryml::to_csubstr(s) == R"("more": {
"vinho verde": "Soalheiro",
"vinho tinto": "Redoma 2017"
}
)");
}
}
@@ -4214,7 +4243,7 @@ void sample_emit_to_file()
- baz
- bat
)";
auto tree = ryml::parse_in_arena(yml);
const ryml::Tree tree = ryml::parse_in_arena(yml);
// this is emitting to stdout, but of course you can pass in any
// FILE* obtained from fopen()
size_t len = ryml::emit_yaml(tree, tree.root_id(), stdout);
@@ -4258,7 +4287,7 @@ void sample_emit_nested_node()
- many other
- wonderful beers
)");
CHECK(ryml::emitrs_yaml<std::string>(tree[3]["beer"][0]) == "Rochefort 10\n");
CHECK(ryml::emitrs_yaml<std::string>(tree[3]["beer"][0]) == "Rochefort 10");
CHECK(ryml::emitrs_yaml<std::string>(tree[3]["beer"][3]) == R"(- and so
- many other
- wonderful beers
@@ -4381,22 +4410,22 @@ flow seq:
- flow val
- flow val
)");
// set all keys to single-quoted:
// change all keys to single-quoted:
tree.rootref().set_style_conditionally(/*type_mask*/ryml::KEY,
/*remflags*/ryml::KEY_STYLE,
/*addflags*/ryml::KEY_SQUO,
/*recurse*/true);
// set all vals to double-quoted
// change all vals to double-quoted
tree.rootref().set_style_conditionally(/*type_mask*/ryml::VAL,
/*remflags*/ryml::VAL_STYLE,
/*addflags*/ryml::VAL_DQUO,
/*recurse*/true);
// set all seqs to flow
// change all seqs to flow
tree.rootref().set_style_conditionally(/*type_mask*/ryml::SEQ,
/*remflags*/ryml::CONTAINER_STYLE,
/*addflags*/ryml::FLOW_SL,
/*recurse*/true);
// set all maps to flow
// change all maps to flow
tree.rootref().set_style_conditionally(/*type_mask*/ryml::MAP,
/*remflags*/ryml::CONTAINER_STYLE,
/*addflags*/ryml::BLOCK,
@@ -4410,7 +4439,7 @@ R"('block map':
'flow key': "flow val"
'flow seq': ["flow val","flow val"]
)");
// you can also set a conditional style in a single node:
// you can also set a conditional style in a single node (or its branch if recurse is true):
tree["flow seq"].set_style_conditionally(/*type_mask*/ryml::SEQ,
/*remflags*/ryml::CONTAINER_STYLE,
/*addflags*/ryml::BLOCK,
@@ -4443,11 +4472,12 @@ R"('block map':
void sample_json()
{
ryml::csubstr json = R"({
"doe":"a deer, a female deer",
"ray":"a drop of golden sun",
"me":"a name, I call myself",
"far":"a long long way to go"
})";
"doe": "a deer, a female deer",
"ray": "a drop of golden sun",
"me": "a name, I call myself",
"far": "a long long way to go"
}
)";
// Since JSON is a subset of YAML, parsing JSON is just the
// same as YAML:
ryml::Tree tree = ryml::parse_in_arena(json);
@@ -4455,13 +4485,13 @@ void sample_json()
// appropriate parse_json overload, which is faster because json
// has a smaller grammar:
ryml::Tree json_tree = ryml::parse_json_in_arena(json);
// to emit JSON, use the proper overload:
CHECK(ryml::emitrs_json<std::string>(tree) == R"({"doe": "a deer, a female deer","ray": "a drop of golden sun","me": "a name, I call myself","far": "a long long way to go"})");
CHECK(ryml::emitrs_json<std::string>(json_tree) == R"({"doe": "a deer, a female deer","ray": "a drop of golden sun","me": "a name, I call myself","far": "a long long way to go"})");
// to emit JSON:
CHECK(ryml::emitrs_json<std::string>(tree) == json);
CHECK(ryml::emitrs_json<std::string>(json_tree) == json);
// to emit JSON to a stream:
std::stringstream ss;
ss << ryml::as_json(tree); // <- mark it like this
CHECK(ss.str() == R"({"doe": "a deer, a female deer","ray": "a drop of golden sun","me": "a name, I call myself","far": "a long long way to go"})");
CHECK(ss.str() == json);
// Note the following limitations:
//
// - YAML streams cannot be emitted as json, and are not
@@ -4478,11 +4508,12 @@ void sample_json()
// Note that when parsing JSON, ryml will the style of each node
// in the JSON. This means that if you emit as YAML it will look
// mostly the same as the JSON:
CHECK(ryml::emitrs_yaml<std::string>(json_tree) == R"({"doe": "a deer, a female deer","ray": "a drop of golden sun","me": "a name, I call myself","far": "a long long way to go"})");
std::cout << ryml::emitrs_yaml<std::string>(json_tree);
CHECK(ryml::emitrs_yaml<std::string>(json_tree) == json);
// If you want to avoid this, you will need to clear the style.
json_tree.rootref().clear_style(); // clear the style of the map, but do not recurse
// note that this is now block mode. That is because when no
// style is set, the emit function will default to block mode.
// style is set, the YAML emit function will default to block mode.
CHECK(ryml::emitrs_yaml<std::string>(json_tree) ==
R"("doe": "a deer, a female deer"
"ray": "a drop of golden sun"
@@ -4492,8 +4523,8 @@ void sample_json()
// if you don't want the double quotes in the scalar, you can
// recurse:
json_tree.rootref().clear_style(/*recurse*/true);
// so now you when emittingwill get this:
// (the scalars with a comma are single-qu)
// so now when emitting you will get this:
// (the scalars with a comma are single-quote)
CHECK(ryml::emitrs_yaml<std::string>(json_tree) ==
R"(doe: 'a deer, a female deer'
ray: a drop of golden sun
@@ -4957,14 +4988,14 @@ d: 3
// tree as json when you start from the root:
//CHECK(ryml::emitrs_json<std::string>(tree) == yml); // RUNTIME ERROR!
// emitting streams as json is not possible, but
// but, althouth emitting streams as json is not possible,
// you can iterate through individual documents and emit
// them separately:
{
const std::string expected_json[] = {
R"({"a": 0,"b": 1})",
R"({"c": 2,"d": 3})",
R"([4,5,6,7])",
"{\n \"a\": 0,\n \"b\": 1\n}\n",
"{\n \"c\": 2,\n \"d\": 3\n}\n",
"[\n 4,\n 5,\n 6,\n 7\n]\n",
};
// using the node API
{
@@ -4972,7 +5003,9 @@ d: 3
const ryml::ConstNodeRef stream = tree.rootref();
CHECK(stream.num_children() == (ryml::id_type)C4_COUNTOF(expected_json));
for(ryml::ConstNodeRef doc : stream.children())
{
CHECK(ryml::emitrs_json<std::string>(doc) == expected_json[count++]);
}
}
// equivalent: using the index API
{
@@ -4980,7 +5013,9 @@ d: 3
const ryml::id_type stream_id = tree.root_id();
CHECK(tree.num_children(stream_id) == (ryml::id_type)C4_COUNTOF(expected_json));
for(ryml::id_type doc_id = tree.first_child(stream_id); doc_id != ryml::NONE; doc_id = tree.next_sibling(doc_id))
{
CHECK(ryml::emitrs_json<std::string>(tree, doc_id) == expected_json[count++]);
}
}
}
}

View File

@@ -84,8 +84,8 @@ endfunction()
ryml_add_test(engine_1_doc)
ryml_add_test(engine_2_map)
ryml_add_test(engine_3_seq)
ryml_add_test(engine_2_seq)
ryml_add_test(engine_3_map)
ryml_add_test(engine_4_anchor)
ryml_add_test(engine_5_tag)
ryml_add_test(engine_6_qmrk)

View File

@@ -107,9 +107,21 @@ bar: {<<: *foo},
EXPECT_EQ(t["bar"]["<<"].val(), "*foo");
//EXPECT_EQ(t["bar"]["<<"].key_ref(), "<<"); // not a ref!
EXPECT_EQ(t["bar"]["<<"].val_ref(), "foo");
EXPECT_EQ(emitrs_yaml<std::string>(t), R"({foo: &foo {a: 1,b: 2},bar: {<<: *foo},sq: {'<<': haha},dq: {"<<": hehe}})");
EXPECT_EQ(emitrs_yaml<std::string>(t), R"({
foo: &foo {a: 1,b: 2},
bar: {<<: *foo},
sq: {'<<': haha},
dq: {"<<": hehe}
}
)");
t.resolve();
EXPECT_EQ(emitrs_yaml<std::string>(t), R"({foo: {a: 1,b: 2},bar: {a: 1,b: 2},sq: {'<<': haha},dq: {"<<": hehe}})");
EXPECT_EQ(emitrs_yaml<std::string>(t), R"({
foo: {a: 1,b: 2},
bar: {a: 1,b: 2},
sq: {'<<': haha},
dq: {"<<": hehe}
}
)");
}
TEST(anchors, programatic_key_ref)
@@ -996,16 +1008,16 @@ bar: &bar {
age: 20
}
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "anchored_content", "This string will appear as the value of two keys.", AR(VALANCH, "anchor_name")),
N(KP|VAL, "other_anchor", "*anchor_name", AR(VALREF, "anchor_name")),
N(KP|SFS, "anchors_in_seqs", L{
N(KP|SFM, "anchors_in_seqs", L{
N(VP, "this value appears in both elements of the sequence", AR(VALANCH, "anchor_in_seq")),
N(VAL, "*anchor_in_seq", AR(VALREF, "anchor_in_seq")),
}),
N(KP|MFS, "base", L{N(KP|VP, "name", "Everyone has same name")}, AR(VALANCH, "base")),
N(KP|MFS, "foo", L{N(KP|VAL, "<<", "*base", AR(VALREF, "base")), N(KP|VP, "age", "10")}, AR(VALANCH, "foo")),
N(KP|MFS, "bar", L{N(KP|VAL, "<<", "*base", AR(VALREF, "base")), N(KP|VP, "age", "20")}, AR(VALANCH, "bar")),
N(KP|MFM, "base", L{N(KP|VP, "name", "Everyone has same name")}, AR(VALANCH, "base")),
N(KP|MFM, "foo", L{N(KP|VAL, "<<", "*base", AR(VALREF, "base")), N(KP|VP, "age", "10")}, AR(VALANCH, "foo")),
N(KP|MFM, "bar", L{N(KP|VAL, "<<", "*base", AR(VALREF, "base")), N(KP|VP, "age", "20")}, AR(VALANCH, "bar")),
})
);
@@ -1058,16 +1070,16 @@ bar: &bar {
age: 20
}
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "anchored_content", "This string will appear as the value of two keys."),
N(KP|VP, "other_anchor", "This string will appear as the value of two keys."),
N(KP|SFS, "anchors_in_seqs", L{
N(KP|SFM, "anchors_in_seqs", L{
N(VP, "this value appears in both elements of the sequence"),
N(VP, "this value appears in both elements of the sequence"),
}),
N(KP|MFS, "base", L{N(KP|VP, "name", "Everyone has same name")}),
N(KP|MFS, "foo", L{N(KP|VP, "name", "Everyone has same name"), N(KP|VP, "age", "10")}),
N(KP|MFS, "bar", L{N(KP|VP, "name", "Everyone has same name"), N(KP|VP, "age", "20")}),
N(KP|MFM, "base", L{N(KP|VP, "name", "Everyone has same name")}),
N(KP|MFM, "foo", L{N(KP|VP, "name", "Everyone has same name"), N(KP|VP, "age", "10")}),
N(KP|MFM, "bar", L{N(KP|VP, "name", "Everyone has same name"), N(KP|VP, "age", "20")}),
})
);

File diff suppressed because it is too large Load Diff

View File

@@ -268,6 +268,22 @@ ENGINE_TEST(DocScalarPlain1,
___(ps.end_stream());
}
ENGINE_TEST(DocScalarPlainEmpty,
"---\n"
,
"+STR\n"
"+DOC ---\n"
"=VAL :\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc_expl());
___(ps.set_val_scalar_plain_empty());
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(DocScalarPlain2,
"--- ---\n"
,
@@ -537,7 +553,7 @@ ENGINE_TEST(DocScalarPlainIndentation,
___(ps.set_val_scalar_plain("foo bar"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_map_val_block());
@@ -546,7 +562,7 @@ ENGINE_TEST(DocScalarPlainIndentation,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("ddd"));
___(ps.set_val_scalar_plain("eee"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -570,6 +586,24 @@ ENGINE_TEST(DocScalarSQuoted,
___(ps.end_stream());
}
ENGINE_TEST(DocScalarSQuotedExpl,
"--- ''"
,
"--- ''\n"
,
"+STR\n"
"+DOC ---\n"
"=VAL '\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc_expl());
___(ps.set_val_scalar_squoted(""));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(DocScalarSQuotedMultiline,
HAS_MULTILINE_SCALAR
,
@@ -647,6 +681,24 @@ ENGINE_TEST(DocScalarDQuoted,
___(ps.end_stream());
}
ENGINE_TEST(DocScalarDQuotedExpl,
"--- \"\""
,
"--- \"\"\n"
,
"+STR\n"
"+DOC ---\n"
"=VAL \"\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc_expl());
___(ps.set_val_scalar_dquoted(""));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(DocScalarDQuotedMultiline,
HAS_MULTILINE_SCALAR
,
@@ -727,6 +779,26 @@ ENGINE_TEST(DocScalarLiteral,
___(ps.end_stream());
}
ENGINE_TEST(DocScalarLiteralExpl,
HAS_MULTILINE_SCALAR
,
"--- |1-"
,
"--- |-\n"
,
"+STR\n"
"+DOC ---\n"
"=VAL |\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc_expl());
___(ps.set_val_scalar_literal(""));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(DocScalarLiteralComment0,
HAS_MULTILINE_SCALAR
,
@@ -787,6 +859,26 @@ ENGINE_TEST(DocScalarFolded,
___(ps.end_stream());
}
ENGINE_TEST(DocScalarFoldedExpl,
HAS_MULTILINE_SCALAR
,
"--- >1-"
,
"--- >-\n"
,
"+STR\n"
"+DOC ---\n"
"=VAL >\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc_expl());
___(ps.set_val_scalar_folded(""));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(DocScalarFoldedComment0,
HAS_MULTILINE_SCALAR
,
@@ -870,7 +962,7 @@ ENGINE_TEST(ScalarMixedMap,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain(". \"dquo\" plain 'squo'"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -937,8 +1029,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstAnchor,
"&anch1\n"
"--- &anch2\n"
,
"--- &anch1 \n"
"--- &anch2 \n"
"--- &anch1\n"
"--- &anch2\n"
,
"+STR\n"
"+DOC\n"
@@ -965,8 +1057,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstTag,
"!!str\n"
"--- !!str\n"
,
"--- !!str \n"
"--- !!str \n"
"--- !!str\n"
"--- !!str\n"
,
"+STR\n"
"+DOC\n"
@@ -993,10 +1085,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstSeqFlowEmpty,
"[]\n"
"--- []\n"
,
"---\n"
"[]\n"
"---\n"
"[]\n"
"--- []\n"
"--- []\n"
,
"+STR\n"
"+DOC\n"
@@ -1012,11 +1102,11 @@ ENGINE_TEST(DocStreamImplicitDocFirstSeqFlowEmpty,
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1025,10 +1115,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstSeqFlow,
"[a]\n"
"--- [b]\n"
,
"---\n"
"[a]\n"
"---\n"
"[b]\n"
"--- [a]\n"
"--- [b]\n"
,
"+STR\n"
"+DOC\n"
@@ -1047,12 +1135,12 @@ ENGINE_TEST(DocStreamImplicitDocFirstSeqFlow,
___(ps.begin_doc());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("b"));
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1061,10 +1149,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstMapEmpty,
"{}\n"
"--- {}\n"
,
"---\n"
"{}\n"
"---\n"
"{}\n"
"--- {}\n"
"--- {}\n"
,
"+STR\n"
"+DOC\n"
@@ -1080,11 +1166,11 @@ ENGINE_TEST(DocStreamImplicitDocFirstMapEmpty,
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1093,10 +1179,8 @@ ENGINE_TEST(DocStreamImplicitDocFirstMap,
"{a: b}\n"
"--- {c: d}\n"
,
"---\n"
"{a: b}\n"
"---\n"
"{c: d}\n"
"--- {a: b}\n"
"--- {c: d}\n"
,
"+STR\n"
"+DOC\n"
@@ -1118,13 +1202,13 @@ ENGINE_TEST(DocStreamImplicitDocFirstMap,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("c"));
___(ps.set_val_scalar_plain("d"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1180,9 +1264,9 @@ ENGINE_TEST(SuddenDoc0,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc_expl());
___(ps.begin_doc());
___(ps.begin_map_val_block());
@@ -1191,8 +1275,8 @@ ENGINE_TEST(SuddenDoc0,
___(ps.set_val_scalar_plain("a"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("b"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_doc_expl());
___(ps.end_stream());
}
@@ -1382,14 +1466,14 @@ ENGINE_TEST(SuddenDoc1,
___(ps.set_val_scalar_plain("another seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("etc"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
};
auto build_seq = [&ps]{
___(ps.begin_map_val_block());
@@ -1406,13 +1490,13 @@ ENGINE_TEST(SuddenDoc1,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("another map"));
___(ps.set_val_scalar_plain("the value"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
};
___(ps.begin_stream());
___(ps.begin_doc());

View File

@@ -7,6 +7,9 @@ namespace c4 {
namespace yml {
static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
//-----------------------------------------------------------------------------
ENGINE_TEST(SimpleSeqFlow,
@@ -30,7 +33,7 @@ ENGINE_TEST(SimpleSeqFlow,
___(ps.set_val_scalar_plain("bar"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -62,8 +65,8 @@ ENGINE_TEST(NestedSeqFlowEmpty,
___(ps.begin_doc());
___(ps.begin_seq_val_flow());
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -87,9 +90,9 @@ ENGINE_TEST(NestedSeq3FlowEmpty,
___(ps.begin_seq_val_flow());
___(ps.begin_seq_val_flow());
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -116,10 +119,10 @@ ENGINE_TEST(NestedSeq4FlowEmpty,
___(ps.begin_seq_val_flow());
___(ps.begin_seq_val_flow());
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -127,7 +130,7 @@ ENGINE_TEST(NestedSeq4FlowEmpty,
ENGINE_TEST(SimpleSeqFlowMultiline,
"[\nfoo\n,\nbar\n,\nbaz\n]"
,
"[foo,bar,baz]"
"[\n foo,\n bar,\n baz\n]\n"
,
"+STR\n"
"+DOC\n"
@@ -147,7 +150,7 @@ ENGINE_TEST(SimpleSeqFlowMultiline,
___(ps.set_val_scalar_plain("bar"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_seq());
___(ps.end_seq_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -176,7 +179,7 @@ ENGINE_TEST(SimpleSeqBlock,
___(ps.set_val_scalar_plain("bar"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -213,7 +216,7 @@ ENGINE_TEST(SimpleSeqBlock2,
___(ps.set_val_scalar_plain("bar"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("foo"));
@@ -221,8 +224,8 @@ ENGINE_TEST(SimpleSeqBlock2,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("baz"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -247,7 +250,7 @@ ENGINE_TEST(SimpleSeqBlockPlainScalar0,
ps.begin_doc();
ps.begin_seq_val_block();
ps.set_val_scalar_plain("a b");
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -255,7 +258,8 @@ ENGINE_TEST(SimpleSeqBlockPlainScalar0,
ENGINE_TEST(SimpleSeqBlockPlainScalar1,
HAS_MULTILINE_SCALAR,
"- a\n"
" - b - c\n",
" - b - c\n"
,
"- a - b - c\n"
,
"+STR\n"
@@ -270,7 +274,7 @@ ENGINE_TEST(SimpleSeqBlockPlainScalar1,
ps.begin_doc();
ps.begin_seq_val_block();
ps.set_val_scalar_plain("a - b - c");
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -296,7 +300,7 @@ ENGINE_TEST(SimpleSeqBlockComment0,
ps.begin_seq_val_block();
ps.set_val_anchor("wtf");
ps.set_val_scalar_plain("foo");
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -322,7 +326,7 @@ ENGINE_TEST(SimpleSeqBlockComment1,
ps.begin_seq_val_block();
ps.set_val_anchor("wtf");
ps.set_val_scalar_plain("foo");
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -353,7 +357,7 @@ ENGINE_TEST(SimpleSeqBlockEmptyScalars,
ps.set_val_scalar_plain({});
ps.add_sibling();
ps.set_val_scalar_plain({});
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -386,7 +390,7 @@ ENGINE_TEST(SimpleSeqBlockEmptyLiterals,
ps.set_val_scalar_literal({});
ps.add_sibling();
ps.set_val_scalar_literal({});
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -418,7 +422,7 @@ ENGINE_TEST(SimpleSeqBlockEmptyFolded,
ps.set_val_scalar_folded({});
ps.add_sibling();
ps.set_val_scalar_folded({});
ps.end_seq();
ps.end_seq_block();
ps.end_doc();
ps.end_stream();
}
@@ -428,7 +432,7 @@ ENGINE_TEST(SimpleSeqBlockEmptyFolded,
ENGINE_TEST(SeqSeqFlow,
"[[foo1,bar1,baz1],\n[foo2,bar2,baz2]]"
,
"[[foo1,bar1,baz1],[foo2,bar2,baz2]]"
"[\n [foo1,bar1,baz1],\n [foo2,bar2,baz2]\n]\n"
,
"+STR\n"
"+DOC\n"
@@ -456,7 +460,7 @@ ENGINE_TEST(SeqSeqFlow,
___(ps.set_val_scalar_plain("bar1"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz1"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("foo2"));
@@ -464,8 +468,8 @@ ENGINE_TEST(SeqSeqFlow,
___(ps.set_val_scalar_plain("bar2"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz2"));
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -493,7 +497,7 @@ ENGINE_TEST(SeqBlockSpace, HAS_MULTILINE_SCALAR,
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("a - b"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -517,7 +521,7 @@ ENGINE_TEST(SeqBlockTab, HAS_MULTILINE_SCALAR,
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("a - b"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -560,7 +564,7 @@ ENGINE_TEST(SeqSeqBlock,
___(ps.set_val_scalar_plain("bar1"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz1"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.add_sibling());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("foo2"));
@@ -568,8 +572,8 @@ ENGINE_TEST(SeqSeqBlock,
___(ps.set_val_scalar_plain("bar2"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz2"));
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -613,7 +617,7 @@ ENGINE_TEST(SeqSeqSeqBlock,
___(ps.set_val_scalar_plain("bar1"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz1"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.add_sibling());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("foo2"));
@@ -621,11 +625,75 @@ ENGINE_TEST(SeqSeqSeqBlock,
___(ps.set_val_scalar_plain("bar2"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz2"));
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_seq_block());
___(ps.add_sibling());
___(ps.set_val_scalar_plain("back"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SeqSeqSeqSeqBlock,
"- - - - foo1\n"
" - bar1\n"
" - baz1\n"
" - - - foo2\n"
" - bar2\n"
" - baz2\n"
"- back\n"
,
"+STR\n"
"+DOC\n"
"+SEQ\n"
"+SEQ\n"
"+SEQ\n"
"+SEQ\n"
"=VAL :foo1\n"
"=VAL :bar1\n"
"=VAL :baz1\n"
"-SEQ\n"
"-SEQ\n"
"+SEQ\n"
"+SEQ\n"
"=VAL :foo2\n"
"=VAL :bar2\n"
"=VAL :baz2\n"
"-SEQ\n"
"-SEQ\n"
"-SEQ\n"
"=VAL :back\n"
"-SEQ\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.begin_seq_val_block());
___(ps.begin_seq_val_block());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("foo1"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar1"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz1"));
___(ps.end_seq_block());
___(ps.end_seq_block());
___(ps.add_sibling());
___(ps.begin_seq_val_block());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("foo2"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar2"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("baz2"));
___(ps.end_seq_block());
___(ps.end_seq_block());
___(ps.end_seq_block());
___(ps.add_sibling());
___(ps.set_val_scalar_plain("back"));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -672,7 +740,7 @@ ENGINE_TEST(SeqMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain("2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
@@ -680,7 +748,7 @@ ENGINE_TEST(SeqMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain("20"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
@@ -688,8 +756,8 @@ ENGINE_TEST(SeqMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain("200"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -6,8 +6,49 @@
namespace c4 {
namespace yml {
static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
//-----------------------------------------------------------------------------
ENGINE_TEST(SimpleMapFlowEmpty,
"{}"
,
"+STR\n"
"+DOC\n"
"+MAP {}\n"
"-MAP\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SimpleMapFlowEmptyMultiline,
"{\n}"
,
"{\n}\n"
,
"+STR\n"
"+DOC\n"
"+MAP {}\n"
"-MAP\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.end_map_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SimpleMapFlow,
"{foo: bar,foo2: bar2}"
,
@@ -30,7 +71,36 @@ ENGINE_TEST(SimpleMapFlow,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo2"));
___(ps.set_val_scalar_plain("bar2"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SimpleMapFlowMultiline0,
"{foo: bar,foo2: bar2\n}"
,
"{\n foo: bar,\n foo2: bar2\n}\n"
,
"+STR\n"
"+DOC\n"
"+MAP {}\n"
"=VAL :foo\n"
"=VAL :bar\n"
"=VAL :foo2\n"
"=VAL :bar2\n"
"-MAP\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo2"));
___(ps.set_val_scalar_plain("bar2"));
___(ps.end_map_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -57,10 +127,10 @@ ENGINE_TEST(NestedMapFlow,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -95,17 +165,17 @@ ENGINE_TEST(NestedMap3FlowEmpty,
___(ps.begin_map_val_flow());
___(ps.begin_map_key_flow());
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.begin_map_val_flow());
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -113,7 +183,7 @@ ENGINE_TEST(NestedMap3FlowEmpty,
ENGINE_TEST(SimpleMapFlowMultiline,
"{\nfoo:\n bar\n,\nfoo2:\nbar2\n}"
,
"{foo: bar,foo2: bar2}"
"{\n foo: bar,\n foo2: bar2\n}\n"
,
"+STR\n"
"+DOC\n"
@@ -134,7 +204,7 @@ ENGINE_TEST(SimpleMapFlowMultiline,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo2"));
___(ps.set_val_scalar_plain("bar2"));
___(ps.end_map());
___(ps.end_map_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -185,8 +255,8 @@ ENGINE_TEST(SimpleMapBlockSameLine7, HAS_MULTILINE_SCALAR,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("b"));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -221,7 +291,55 @@ ENGINE_TEST(SimpleMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo3"));
___(ps.set_val_scalar_plain("bar3"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SimpleMapBlockEmptyFlowMap,
"foo: {}\n"
,
"+STR\n"
"+DOC\n"
"+MAP\n"
"=VAL :foo\n"
"+MAP {}\n"
"-MAP\n"
"-MAP\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.begin_map_val_flow());
___(ps.end_map_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
ENGINE_TEST(SimpleMapBlockEmptyFlowSeq,
"foo: []\n"
,
"+STR\n"
"+DOC\n"
"+MAP\n"
"=VAL :foo\n"
"+SEQ []\n"
"-SEQ\n"
"-MAP\n"
"-DOC\n"
"-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.begin_seq_val_flow());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -260,7 +378,7 @@ ENGINE_TEST(SimpleMapBlockEmptyVals,
ps.add_sibling();
ps.set_key_scalar_plain("d");
ps.set_val_scalar_plain({});
ps.end_map();
ps.end_map_block();
ps.end_doc();
ps.end_stream();
}
@@ -297,7 +415,7 @@ ENGINE_TEST(SimpleMapBlockEmptyKeys,
ps.add_sibling();
ps.set_key_scalar_plain({});
ps.set_val_scalar_plain("d");
ps.end_map();
ps.end_map_block();
ps.end_doc();
ps.end_stream();
}
@@ -336,7 +454,7 @@ ENGINE_TEST(SimpleMapBlockEmpty,
ps.add_sibling();
ps.set_key_scalar_plain({});
ps.set_val_scalar_plain({});
ps.end_map();
ps.end_map_block();
ps.end_doc();
ps.end_stream();
}
@@ -389,7 +507,7 @@ ENGINE_TEST(SimpleMapIndentlessSeq,
ps.set_val_scalar_plain("bar");
ps.add_sibling();
ps.set_val_scalar_plain({});
ps.end_seq();
ps.end_seq_block();
ps.add_sibling();
ps.set_key_scalar_plain("baz");
ps.set_val_scalar_plain("qux");
@@ -399,11 +517,11 @@ ENGINE_TEST(SimpleMapIndentlessSeq,
ps.set_val_scalar_plain("bar2");
ps.add_sibling();
ps.set_val_scalar_plain({});
ps.end_seq();
ps.end_seq_block();
ps.add_sibling();
ps.set_key_scalar_plain("baz2");
ps.set_val_scalar_plain("qux2");
ps.end_map();
ps.end_map_block();
ps.end_doc();
ps.end_stream();
}
@@ -444,7 +562,7 @@ ENGINE_TEST(SimpleMapContainerKeyFlow,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
___(ps.add_sibling());
@@ -455,8 +573,8 @@ ENGINE_TEST(SimpleMapContainerKeyFlow,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -494,7 +612,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block0_0,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
___(ps.add_sibling());
@@ -505,8 +623,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block0_0,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -543,7 +661,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block0_1,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_block());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
@@ -555,8 +673,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block0_1,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -599,7 +717,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block1_0,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("key"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
___(ps.add_sibling());
@@ -610,8 +728,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block1_0,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -653,7 +771,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block1_1,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("key"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_block());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
@@ -665,8 +783,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block1_1,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -704,7 +822,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block2_0,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
___(ps.add_sibling());
@@ -715,8 +833,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block2_0,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -753,7 +871,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block2_1,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_block());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
@@ -765,8 +883,8 @@ ENGINE_TEST(SimpleMapContainerKey1Block2_1,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -811,13 +929,13 @@ ENGINE_TEST(SimpleMapContainerKey1Block3_0,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("map"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("seq"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_map_val_block());
@@ -825,12 +943,12 @@ ENGINE_TEST(SimpleMapContainerKey1Block3_0,
___(ps.set_val_scalar_plain("A"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("SEQ"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("A"));
___(ps.set_val_scalar_plain("MAP"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -874,27 +992,27 @@ ENGINE_TEST(SimpleMapContainerKey1Block3_1,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("map"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_block());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("seq"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("A"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("SEQ"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_block());
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("A"));
___(ps.set_val_scalar_plain("MAP"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -902,7 +1020,7 @@ ENGINE_TEST(SimpleMapContainerKey1Block3_1,
// the examples above have the starting '[' / '{' at the beginning,
// where it is parsed in UNK state. This one has those tokens already
// in RMAP|BLCK|RKEY state, ie, they don't come first.
// in RMAP|RBLCK|RKEY state, ie, they don't come first.
ENGINE_TEST(SimpleMapContainerKey2Block_1,
HAS_CONTAINER_KEYS,
"\n"
@@ -954,7 +1072,7 @@ ENGINE_TEST(SimpleMapContainerKey2Block_1,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("keymap"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("and"));
___(ps.add_sibling());
@@ -965,7 +1083,7 @@ ENGINE_TEST(SimpleMapContainerKey2Block_1,
___(ps.set_val_scalar_plain("seq"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("val"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_tag("!seqtag"));
___(ps.set_key_anchor("seqanchor"));
@@ -973,12 +1091,12 @@ ENGINE_TEST(SimpleMapContainerKey2Block_1,
___(ps.set_val_scalar_plain("now"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("reversed"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("of"));
___(ps.set_val_scalar_plain("course"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1019,7 +1137,7 @@ ENGINE_TEST(MapMapFlow,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO1"));
___(ps.set_val_scalar_plain("BAR1"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("map2"));
___(ps.begin_map_val_flow());
@@ -1028,8 +1146,8 @@ ENGINE_TEST(MapMapFlow,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO2"));
___(ps.set_val_scalar_plain("BAR2"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1076,7 +1194,7 @@ ENGINE_TEST(MapMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO1"));
___(ps.set_val_scalar_plain("BAR1"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("map2"));
___(ps.begin_map_val_block());
@@ -1085,8 +1203,8 @@ ENGINE_TEST(MapMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO2"));
___(ps.set_val_scalar_plain("BAR2"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1160,7 +1278,7 @@ ENGINE_TEST(MapMapMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO01"));
___(ps.set_val_scalar_plain("BAR01"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("map02"));
___(ps.begin_map_val_block());
@@ -1177,9 +1295,9 @@ ENGINE_TEST(MapMapMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo021"));
___(ps.set_val_scalar_plain("bar021"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("map1"));
___(ps.begin_map_val_block());
@@ -1190,9 +1308,9 @@ ENGINE_TEST(MapMapMapBlock,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("FOO11"));
___(ps.set_val_scalar_plain("BAR11"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1222,9 +1340,9 @@ ENGINE_TEST(MapKeyFlow,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1251,9 +1369,9 @@ ENGINE_TEST(MapKeyBlock,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1280,9 +1398,9 @@ ENGINE_TEST(MapKeyBlockFlow,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1310,9 +1428,9 @@ ENGINE_TEST(SeqKeyFlow,
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1343,9 +1461,9 @@ ENGINE_TEST(SeqKeyBlock,
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1374,9 +1492,9 @@ ENGINE_TEST(SeqKeyBlockFlow,
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1412,13 +1530,13 @@ ENGINE_TEST(SeqKeyBlock2,
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.begin_seq_key_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bat"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1454,13 +1572,13 @@ ENGINE_TEST(SeqKeyBlock3,
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.begin_seq_key_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bat"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1489,9 +1607,9 @@ ENGINE_TEST(MapKeyBlock4Squo0,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_squoted("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1524,9 +1642,9 @@ ENGINE_TEST(MapKeyBlock4Squo1,
___(ps.set_key_anchor("scalarkey"));
___(ps.set_key_scalar_squoted("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1555,9 +1673,9 @@ ENGINE_TEST(MapKeyBlock4Dquo0,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_dquoted("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1590,9 +1708,9 @@ ENGINE_TEST(MapKeyBlock4Dquo1,
___(ps.set_key_anchor("scalarkey"));
___(ps.set_key_scalar_dquoted("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1617,7 +1735,7 @@ ENGINE_TEST(MapKeyBlock4Ref0,
___(ps.begin_map_val_block());
___(ps.set_key_ref("*ref"));
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1648,9 +1766,9 @@ ENGINE_TEST(MapKeyBlock4Ref1,
___(ps.begin_map_key_block());
___(ps.set_key_ref("*ref"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("baz"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -88,7 +88,7 @@ ENGINE_TEST(AnchorSeqBlock,
___(ps.add_sibling());
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -134,7 +134,7 @@ ENGINE_TEST(AnchorSeqMapBlock,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2"));
___(ps.begin_map_val_block());
@@ -147,8 +147,8 @@ ENGINE_TEST(AnchorSeqMapBlock,
___(ps.set_key_scalar_plain("key20"));
___(ps.set_val_anchor("val20"));
___(ps.set_val_scalar_plain("val20"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -156,7 +156,7 @@ ENGINE_TEST(AnchorSeqMapBlock,
ENGINE_TEST(AnchorSeqFlow,
"&seq [&val1 val1,\n&val2 val2]"
,
"&seq [&val1 val1,&val2 val2]"
"&seq [\n &val1 val1,\n &val2 val2\n]\n"
,
"+STR\n"
"+DOC\n"
@@ -176,7 +176,7 @@ ENGINE_TEST(AnchorSeqFlow,
___(ps.add_sibling());
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_seq());
___(ps.end_seq_flow(true));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -201,7 +201,7 @@ ENGINE_TEST(AnchorSeqBlockWithRef,
___(ps.set_val_scalar_plain("val1"));
___(ps.add_sibling());
___(ps.set_val_ref("*val1"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -228,7 +228,7 @@ ENGINE_TEST(AnchorSeqFlowWithRef,
___(ps.set_val_scalar_plain("val1"));
___(ps.add_sibling());
___(ps.set_val_ref("*val1"));
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -236,7 +236,7 @@ ENGINE_TEST(AnchorSeqFlowWithRef,
ENGINE_TEST(AnchorSeqFlowWithRefMultiLine,
"&seq\n[\n&val1 val1\n,*val1\n]"
,
"&seq [&val1 val1,*val1]"
"&seq [\n &val1 val1,\n *val1\n]\n"
,
"+STR\n"
"+DOC\n"
@@ -255,7 +255,7 @@ ENGINE_TEST(AnchorSeqFlowWithRefMultiLine,
___(ps.set_val_scalar_plain("val1"));
___(ps.add_sibling());
___(ps.set_val_ref("*val1"));
___(ps.end_seq());
___(ps.end_seq_flow(true));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -290,7 +290,7 @@ ENGINE_TEST(AnchorMapBlock,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -320,7 +320,7 @@ ENGINE_TEST(AnchorMapBlockWithRef,
___(ps.add_sibling());
___(ps.set_key_ref("*rkey1"));
___(ps.set_val_ref("*rval1"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -357,7 +357,7 @@ ENGINE_TEST(AnchorMapFlow,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -365,7 +365,7 @@ ENGINE_TEST(AnchorMapFlow,
ENGINE_TEST(AnchorMapFlowMultiLine,
"&map\n{&key1 key1: &val1 val1,\n&key2 key2: &val2 val2\n}"
,
"&map {&key1 key1: &val1 val1,&key2 key2: &val2 val2}"
"&map {\n &key1 key1: &val1 val1,\n &key2 key2: &val2 val2\n}\n"
,
"+STR\n"
"+DOC\n"
@@ -391,7 +391,7 @@ ENGINE_TEST(AnchorMapFlowMultiLine,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_flow(true));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -424,7 +424,7 @@ ENGINE_TEST(AnchorMapFlowWithRef,
___(ps.add_sibling());
___(ps.set_key_ref("*rkey1"));
___(ps.set_val_ref("*rval1"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -433,7 +433,7 @@ ENGINE_TEST(AnchorMapFlowWithRef,
ENGINE_TEST(AnchorMapFlowWithRefMultiLine,
"&map\n{\n&rkey1 key1: &rval1 val1,\n*rkey1 : *rval1\n}"
,
"&map {&rkey1 key1: &rval1 val1,*rkey1 : *rval1}"
"&map {\n &rkey1 key1: &rval1 val1,\n *rkey1 : *rval1\n}\n"
,
"+STR\n"
"+DOC\n"
@@ -457,7 +457,7 @@ ENGINE_TEST(AnchorMapFlowWithRefMultiLine,
___(ps.add_sibling());
___(ps.set_key_ref("*rkey1"));
___(ps.set_val_ref("*rval1"));
___(ps.end_map());
___(ps.end_map_flow(true));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -499,8 +499,8 @@ ENGINE_TEST(AnchorMapMapBlock,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -548,11 +548,11 @@ ENGINE_TEST(AnchorMapMapFlow,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key3"));
___(ps.set_val_scalar_plain("val3"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key4"));
___(ps.set_val_scalar_plain("val4"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -574,7 +574,8 @@ ENGINE_TEST(AnchorTagPlacement,
"\n"
" !b4\n"
"\n"
" foo4: bar4\n",
" foo4: bar4\n"
,
"- !b0 &a0 foo0: bar0\n"
"- !b1 &a1\n"
" foo1: bar1\n"
@@ -620,36 +621,36 @@ ENGINE_TEST(AnchorTagPlacement,
___(ps.set_key_tag("!b0"));
___(ps.set_key_scalar_plain("foo0"));
___(ps.set_val_scalar_plain("bar0"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("a1"));
___(ps.set_val_tag("!b1"));
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo1"));
___(ps.set_val_scalar_plain("bar1"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("a2"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!b2"));
___(ps.set_key_scalar_plain("foo2"));
___(ps.set_val_scalar_plain("bar2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("a3"));
___(ps.set_val_tag("!b3"));
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo3"));
___(ps.set_val_scalar_plain("bar3"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("a4"));
___(ps.set_val_tag("!b4"));
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo4"));
___(ps.set_val_scalar_plain("bar4"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -771,7 +772,7 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_tag("!bartag"));
___(ps.set_key_anchor("baranch"));
@@ -795,7 +796,7 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key10"));
___(ps.set_val_scalar_plain("20"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_tag("!baztag"));
___(ps.set_key_anchor("bazanch"));
@@ -819,7 +820,7 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key10"));
___(ps.set_val_scalar_plain("20"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("brr"));
___(ps.set_val_anchor("map2"));
@@ -827,7 +828,7 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bra"));
___(ps.set_val_anchor("map2"));
@@ -835,7 +836,7 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bre"));
___(ps.set_val_anchor("map2"));
@@ -843,12 +844,12 @@ ENGINE_TEST(AnchorMapMapSuckerPunch,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bru"));
___(ps.set_val_anchor("wtf"));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -955,7 +956,7 @@ ENGINE_TEST(AnchorSeqMapSuckerPunch,
___(ps.set_key_scalar_plain("key2"));
___(ps.set_val_anchor("val2"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2a"));
___(ps.set_val_tag("!a"));
@@ -973,7 +974,7 @@ ENGINE_TEST(AnchorSeqMapSuckerPunch,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key10"));
___(ps.set_val_scalar_plain("20"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2x"));
___(ps.set_val_tag("!a"));
@@ -991,32 +992,32 @@ ENGINE_TEST(AnchorSeqMapSuckerPunch,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("key10"));
___(ps.set_val_scalar_plain("20"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2y"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2z"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("map2u"));
___(ps.set_val_tag("!a"));
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_anchor("wtf"));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1048,9 +1049,9 @@ ENGINE_TEST(DocDoubleAnchorSeqMap,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("seq"));
___(ps.set_val_scalar_plain("yeah"));
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1080,9 +1081,9 @@ ENGINE_TEST(DoubleAnchorSeqMap,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("seq"));
___(ps.set_val_scalar_plain("yeah"));
___(ps.end_seq());
___(ps.end_seq_flow(false));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1112,9 +1113,9 @@ ENGINE_TEST(DocDoubleAnchorKeyMap,
___(ps.begin_map_key_flow());
___(ps.set_val_scalar_plain("key"));
___(ps.set_val_scalar_plain("val"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1144,9 +1145,9 @@ ENGINE_TEST(DoubleAnchorKeyMap,
___(ps.begin_map_key_flow());
___(ps.set_val_scalar_plain("key"));
___(ps.set_val_scalar_plain("val"));
___(ps.end_map());
___(ps.end_map_flow(false));
___(ps.set_val_scalar_plain("foo"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -7,6 +7,9 @@ namespace c4 {
namespace yml {
static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
//-----------------------------------------------------------------------------
@@ -20,7 +23,7 @@ ENGINE_TEST(TagPlacementSeqFlow,
"]\n"
""
,
"[!tag ,!tag 0,!tag [],!tag {}]"
"[\n !tag ,\n !tag 0,\n !tag [],\n !tag {}\n]\n"
,
""
"+STR\n"
@@ -47,12 +50,12 @@ ENGINE_TEST(TagPlacementSeqFlow,
___(ps.add_sibling());
___(ps.set_val_tag("!tag"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_tag("!tag"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -97,12 +100,12 @@ ENGINE_TEST(TagPlacementSeqBlock,
___(ps.add_sibling());
___(ps.set_val_tag("!tag"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_tag("!tag"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -117,7 +120,7 @@ ENGINE_TEST(TagPlacementMapValFlow,
"}\n"
""
,
"{x: !tag ,a: !tag 0,b: !tag [],c: !tag {}}"
"{\n x: !tag ,\n a: !tag 0,\n b: !tag [],\n c: !tag {}\n}\n"
,
""
"+STR\n"
@@ -151,13 +154,13 @@ ENGINE_TEST(TagPlacementMapValFlow,
___(ps.set_key_scalar_plain("b"));
___(ps.set_val_tag("!tag"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("c"));
___(ps.set_val_tag("!tag"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_map_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -226,12 +229,12 @@ ENGINE_TEST(TagPlacementMapValBlock,
___(ps.set_key_scalar_plain("b"));
___(ps.set_val_tag("!tag"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("c"));
___(ps.set_val_tag("!tag"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("d"));
___(ps.set_val_tag("!tag"));
@@ -239,15 +242,15 @@ ENGINE_TEST(TagPlacementMapValBlock,
___(ps.set_key_scalar_plain("e"));
___(ps.set_val_tag("!tag"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("f"));
___(ps.set_val_tag("!tag"));
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!tag"));
___(ps.set_val_scalar_plain("g"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -298,18 +301,18 @@ ENGINE_TEST(TagPlacementMapKeyFlow,
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.begin_seq_key_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -359,18 +362,18 @@ ENGINE_TEST(TagPlacementMapKeyBlock,
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.begin_seq_key_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.add_sibling());
___(ps.set_key_tag("!tag"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -405,8 +408,8 @@ ENGINE_TEST(TagPlacementMapValBlock2_0,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -440,11 +443,11 @@ ENGINE_TEST(TagPlacementMapValBlock2_1,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("b"));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -496,14 +499,14 @@ ENGINE_TEST(TagPlacementMapValBlock2,
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_tag("!tag3"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a"));
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -575,14 +578,14 @@ ENGINE_TEST(TagPlacementMapComplex,
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_tag("!tag1"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_tag("!tag2"));
@@ -591,14 +594,14 @@ ENGINE_TEST(TagPlacementMapComplex,
___(ps.set_key_scalar_plain("1"));
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain("2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_tag("!tag3"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_tag("!tag4"));
@@ -607,21 +610,21 @@ ENGINE_TEST(TagPlacementMapComplex,
___(ps.set_val_scalar_plain("1"));
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain("2"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.set_val_tag("!tag5"));
___(ps.begin_map_val_block());
___(ps.set_key_tag("!a"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_tag("!b"));
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_tag("!tag6"));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -648,7 +651,7 @@ ENGINE_TEST(TagBlockSeq,
___(ps.set_val_scalar_plain("fluorescent"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("notag"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -672,7 +675,7 @@ ENGINE_TEST(TagFlowSeq,
___(ps.set_val_scalar_plain("fluorescent"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("notag"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -747,10 +750,10 @@ ENGINE_TEST(TagTestSuiteU99R_2,
___(ps.begin_doc());
___(ps.begin_seq_val_flow());
___(ps.set_val_tag("!!str"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_val_scalar_plain("xxx"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -771,10 +774,10 @@ ENGINE_TEST(TagTestSuiteU99R_2_1,
___(ps.begin_doc());
___(ps.begin_seq_val_flow());
___(ps.set_val_tag("!str"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_val_scalar_plain("xxx"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -799,12 +802,12 @@ ENGINE_TEST(TagTestSuiteU99R_3,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_tag("!!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("xxx"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -829,12 +832,12 @@ ENGINE_TEST(TagTestSuiteU99R_3_1,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_tag("!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("xxx"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -865,7 +868,7 @@ ENGINE_TEST(TagTestSuiteWZ62_0_0_0,
___(ps.set_key_tag("!!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -896,7 +899,7 @@ ENGINE_TEST(TagTestSuiteWZ62_0_0_1,
___(ps.set_key_tag("!!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -927,7 +930,7 @@ ENGINE_TEST(TagTestSuiteWZ62_0_1_0,
___(ps.set_key_tag("!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -958,7 +961,7 @@ ENGINE_TEST(TagTestSuiteWZ62_0_1_1,
___(ps.set_key_tag("!str"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -989,7 +992,7 @@ ENGINE_TEST(TagTestSuiteWZ62_1_0_0,
___(ps.set_key_tag("!!str:"));
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1020,7 +1023,7 @@ ENGINE_TEST(TagTestSuiteWZ62_1_0_1,
___(ps.set_key_tag("!!str:"));
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1051,7 +1054,7 @@ ENGINE_TEST(TagTestSuiteWZ62_1_1_0,
___(ps.set_key_tag("!str:"));
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1082,7 +1085,7 @@ ENGINE_TEST(TagTestSuiteWZ62_1_1_1,
___(ps.set_key_tag("!str:"));
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1120,7 +1123,7 @@ ENGINE_TEST(TagTestSuiteUGM3,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("date"));
___(ps.set_val_scalar_plain("2001-01-23"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1128,7 +1131,7 @@ ENGINE_TEST(TagTestSuiteUGM3,
ENGINE_TEST(TagTestSuiteUKK6_02_0,
"!"
,
"! \n"
"!\n"
,
"+STR\n"
"+DOC\n"
@@ -1342,7 +1345,7 @@ ENGINE_TEST(TagEmptySeq0,
___(ps.begin_doc());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1359,8 +1362,8 @@ ENGINE_TEST(TagEmptySeq1,
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1379,8 +1382,8 @@ ENGINE_TEST(TagEmptySeq2,
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1399,7 +1402,7 @@ ENGINE_TEST(TagEmptyMap0,
___(ps.begin_doc());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1416,8 +1419,8 @@ ENGINE_TEST(TagEmptyMap1,
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1436,8 +1439,8 @@ ENGINE_TEST(TagEmptyMap2,
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1455,11 +1458,11 @@ ENGINE_TEST(TagYs0,
""
,
""
"--- !yamlscript/v0/bare \n"
"--- !code \n"
"--- !data \n"
"--- !code \n"
"--- !data \n"
"--- !yamlscript/v0/bare\n"
"--- !code\n"
"--- !data\n"
"--- !code\n"
"--- !data\n"
""
,
"+STR\n"
@@ -1512,7 +1515,7 @@ ENGINE_TEST(TagYs1,
""
,
""
"--- !yamlscript/v0/bare \n"
"--- !yamlscript/v0/bare\n"
"--- !code 42\n"
""
,

View File

@@ -6,7 +6,9 @@
namespace c4 {
namespace yml {
//-----------------------------------------------------------------------------
//static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
ENGINE_TEST(Qmrk0,
HAS_CONTAINER_KEYS, Location(41,3,19),
@@ -37,9 +39,9 @@ ENGINE_TEST(Qmrk0,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain("another value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -66,11 +68,11 @@ ENGINE_TEST(Qmrk1_0,
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a simple key"));
___(ps.set_val_scalar_plain("a value"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -101,12 +103,12 @@ ENGINE_TEST(Qmrk1_1,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain("another value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a simple key"));
___(ps.set_val_scalar_plain("a value"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -154,25 +156,25 @@ ENGINE_TEST(Qmrk1_2,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain("another value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a simple key"));
___(ps.set_val_scalar_plain("a value"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("an explicit key deindented"));
___(ps.set_key_scalar_plain("its value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("more"));
___(ps.set_key_scalar_plain("siblings"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -205,14 +207,14 @@ ENGINE_TEST(Qmrk2_0,
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc_expl());
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("another explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -246,14 +248,14 @@ ENGINE_TEST(Qmrk2_1,
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.begin_doc_expl());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("another explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -284,20 +286,20 @@ ENGINE_TEST(Qmrk3,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("?baz"));
___(ps.set_val_scalar_plain({}));
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("?bat"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -323,9 +325,9 @@ ENGINE_TEST(Qmrk4_0,
___(ps.begin_seq_val_flow());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("?baz"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -364,26 +366,26 @@ ENGINE_TEST(Qmrk4,
___(ps.begin_seq_val_flow());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("bar"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("?baz"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_val_scalar_plain("?bat"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -416,15 +418,15 @@ ENGINE_TEST(Qmrk5,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -467,21 +469,21 @@ ENGINE_TEST(Qmrk6,
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("an explicit key"));
___(ps.set_val_scalar_plain("another value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a simple key"));
___(ps.set_val_scalar_plain("a value"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain("another explicit key"));
___(ps.set_val_scalar_plain("its value"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -526,28 +528,28 @@ ENGINE_TEST(Qmrk7,
___(ps.begin_seq_val_block());
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain({}));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain("x"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -582,11 +584,11 @@ ENGINE_TEST(QmrkWithTags,
___(ps.set_key_tag("!at"));
___(ps.begin_map_key_block());
___(ps.set_key_tag("!bt"));
___(ps.set_key_scalar_plain({}));
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain("b2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain("c3"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -625,8 +627,8 @@ ENGINE_TEST(QmrkGithub524_0,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("inner2"));
___(ps.set_val_scalar_plain("2"));
___(ps.end_map());
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -662,11 +664,11 @@ ENGINE_TEST(QmrkGithub524_1,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("inner1"));
___(ps.set_val_scalar_plain("1"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.set_key_scalar_plain("inner2"));
___(ps.set_val_scalar_plain("2"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -691,9 +693,9 @@ ENGINE_TEST(QmrkFlow0,
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -715,9 +717,9 @@ ENGINE_TEST(QmrkFlow1,
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -740,9 +742,9 @@ ENGINE_TEST(QmrkFlow1Anch,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_anchor("anch"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -765,9 +767,9 @@ ENGINE_TEST(QmrkFlow1Tag,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_tag("!tag"));
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_key_scalar_plain_empty());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -790,8 +792,8 @@ ENGINE_TEST(QmrkFlow1Squo,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_squoted("squo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -815,8 +817,8 @@ ENGINE_TEST(QmrkFlow1AnchSquo,
___(ps.begin_map_val_flow());
___(ps.set_key_anchor("anch"));
___(ps.set_key_scalar_squoted("squo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -840,8 +842,8 @@ ENGINE_TEST(QmrkFlow1TagSquo,
___(ps.begin_map_val_flow());
___(ps.set_key_tag("!tag"));
___(ps.set_key_scalar_squoted("squo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -864,8 +866,8 @@ ENGINE_TEST(QmrkFlow1Dquo,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_dquoted("dquo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -889,8 +891,8 @@ ENGINE_TEST(QmrkFlow1AnchDquo,
___(ps.begin_map_val_flow());
___(ps.set_key_anchor("anch"));
___(ps.set_key_scalar_dquoted("dquo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -914,8 +916,8 @@ ENGINE_TEST(QmrkFlow1TagDquo,
___(ps.begin_map_val_flow());
___(ps.set_key_tag("!tag"));
___(ps.set_key_scalar_dquoted("dquo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -938,8 +940,8 @@ ENGINE_TEST(QmrkFlow1Ref,
___(ps.begin_doc());
___(ps.begin_map_val_flow());
___(ps.set_key_ref("*ref"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -968,9 +970,9 @@ ENGINE_TEST(QmrkFlow1Seq,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1000,9 +1002,9 @@ ENGINE_TEST(QmrkFlow1SeqAnchor,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1032,9 +1034,9 @@ ENGINE_TEST(QmrkFlow1SeqTag,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1063,9 +1065,9 @@ ENGINE_TEST(QmrkFlow1Map,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1095,9 +1097,9 @@ ENGINE_TEST(QmrkFlow1MapAnchor,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1127,9 +1129,9 @@ ENGINE_TEST(QmrkFlow1MapTag,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("c"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1158,11 +1160,11 @@ ENGINE_TEST(QmrkTestSuiteM2N8_01_0,
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.begin_seq_key_flow());
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -1190,11 +1192,11 @@ ENGINE_TEST(QmrkTestSuiteM2N8_01_1,
___(ps.begin_map_val_block());
___(ps.begin_map_key_block());
___(ps.begin_map_key_flow());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain("x"));
___(ps.end_map());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_map_block());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -7,6 +7,10 @@ namespace c4 {
namespace yml {
//static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
//-----------------------------------------------------------------------------
ENGINE_TEST(SeqIMap0Ref,
@@ -36,10 +40,10 @@ ENGINE_TEST(SeqIMap0Ref,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("key"));
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -77,10 +81,10 @@ ENGINE_TEST(SeqIMap1,
// val to the key of the first child
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -122,12 +126,12 @@ ENGINE_TEST(SeqIMap2,
___(ps.set_val_scalar_plain("foo"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -215,27 +219,27 @@ ENGINE_TEST(SeqIMap2Nested,
___(ps.set_val_scalar_plain("6"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("7"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain({}));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -266,8 +270,8 @@ ENGINE_TEST(SeqIMap3EmptyKey,
___(ps.set_val_scalar_plain({}));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -297,8 +301,8 @@ ENGINE_TEST(SeqIMap3EmptyVal,
___(ps.set_val_scalar_plain("wtf"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -328,8 +332,8 @@ ENGINE_TEST(SeqIMap3EmptyKeyVal,
___(ps.set_val_scalar_plain({}));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -360,13 +364,13 @@ ENGINE_TEST(SeqIMap3EmptyKeyValNested,
___(ps.set_val_scalar_plain("val0"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("val1"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain({}));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -405,15 +409,15 @@ ENGINE_TEST(SeqIMap3EmptyKeyValNested2,
___(ps.set_val_scalar_plain("val1"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("val2"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain({}));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -446,10 +450,10 @@ ENGINE_TEST(SeqIMap4Ref,
___(ps.set_val_scalar_plain("rat"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("rot"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -495,17 +499,17 @@ ENGINE_TEST(SeqIMap4,
___(ps.set_val_scalar_plain("rat"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("rot"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.begin_seq_val_flow());
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("foo"));
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -549,18 +553,18 @@ ENGINE_TEST(SeqIMap4_actually,
___(ps.set_val_scalar_plain("rat"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("rot"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("foo"));
___(ps.actually_val_is_first_key_of_new_map_flow());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("wtf"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -591,8 +595,8 @@ ENGINE_TEST(SeqIMap5Squo,
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_anchor("anchor"));
___(ps.set_val_scalar_squoted("b"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -620,8 +624,8 @@ ENGINE_TEST(SeqIMap5Dquo,
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_anchor("anchor"));
___(ps.set_val_scalar_dquoted("b"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -648,8 +652,8 @@ ENGINE_TEST(SeqIMap5Ref,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_ref("*ref"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -676,8 +680,8 @@ ENGINE_TEST(SeqIMap5QmrkNone0,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -704,8 +708,8 @@ ENGINE_TEST(SeqIMap5QmrkNone1,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain({}));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -734,8 +738,8 @@ ENGINE_TEST(SeqIMap5QmrkSquo1,
___(ps.set_key_anchor("anchor"));
___(ps.set_key_scalar_squoted("squo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -764,8 +768,8 @@ ENGINE_TEST(SeqIMap5QmrkDquo1,
___(ps.set_key_anchor("anchor"));
___(ps.set_key_scalar_dquoted("dquo"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -792,8 +796,8 @@ ENGINE_TEST(SeqIMap5QmrkRef1,
___(ps.begin_map_val_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_ref("*ref"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -820,8 +824,8 @@ ENGINE_TEST(SeqIMap5QmrkRef2,
___(ps.begin_map_val_flow());
___(ps.set_key_ref("*ref"));
___(ps.set_val_scalar_plain("b"));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -855,10 +859,10 @@ ENGINE_TEST(SeqIMap5QmrkSeq,
___(ps.begin_seq_key_flow());
___(ps.set_val_scalar_plain("a"));
___(ps.set_val_scalar_plain("seq"));
___(ps.end_seq());
___(ps.end_seq_flow(singleline));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}
@@ -892,10 +896,10 @@ ENGINE_TEST(SeqIMap5QmrkMap,
___(ps.begin_map_key_flow());
___(ps.set_key_scalar_plain("a"));
___(ps.set_val_scalar_plain("map"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.end_map_flow(singleline));
___(ps.end_seq_flow(singleline));
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -6,6 +6,9 @@
namespace c4 {
namespace yml {
static constexpr const bool multiline = true;
static constexpr const bool singleline = false;
ENGINE_TEST(PlainScalarUnfiltered,
"foo: bar\n"
@@ -26,7 +29,7 @@ ENGINE_TEST(PlainScalarUnfiltered,
___(ps.set_key_scalar_plain("foo"));
___(ps.mark_val_scalar_unfiltered());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -51,8 +54,8 @@ ENGINE_TEST(PlainScalarWithColon0,
___(ps.begin_doc());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("a:"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -74,7 +77,7 @@ ENGINE_TEST(PlainScalarWithColon1,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("key ends with two colons::"));
___(ps.set_val_scalar_plain("value"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -112,19 +115,19 @@ ENGINE_TEST(PlainScalarWithColonSeq,
___(ps.begin_seq_val_block());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain(":"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("x:"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.add_sibling());
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain(":x:"));
___(ps.set_val_scalar_plain({}));
___(ps.end_map());
___(ps.end_seq());
___(ps.set_val_scalar_plain_empty());
___(ps.end_map_block());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -165,7 +168,7 @@ ENGINE_TEST(BlockPlainScalarCommaMap,
___(ps.begin_map_val_block());
___(ps.set_key_scalar_plain("a, b"));
___(ps.set_val_scalar_plain("c, d"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -188,7 +191,7 @@ ENGINE_TEST(BlockPlainScalarCommaSeq,
___(ps.set_val_scalar_plain("a, b"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("c, d"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -347,15 +350,15 @@ ENGINE_TEST(ExtraTokensNoFalseError0,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("notag"));
___(ps.set_val_scalar_plain("none"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_scalar_plain("seq"));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc_expl());
___(ps.end_stream());
}
@@ -399,15 +402,15 @@ ENGINE_TEST(ExtraTokensNoFalseError1,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("notag"));
___(ps.set_val_scalar_plain("none"));
___(ps.end_map());
___(ps.end_map_flow(singleline));
___(ps.add_sibling());
___(ps.set_key_ref("*seqref"));
___(ps.begin_seq_val_flow());
___(ps.set_val_scalar_plain("foo"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("bar"));
___(ps.end_seq());
___(ps.end_map());
___(ps.end_seq_flow(singleline));
___(ps.end_map_block());
___(ps.end_doc_expl());
___(ps.end_stream());
}
@@ -449,7 +452,7 @@ ENGINE_TEST(PlainScalarBlockSeq0,
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.set_val_scalar_plain("a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~"));
___(ps.end_seq());
___(ps.end_seq_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -476,7 +479,7 @@ ENGINE_TEST(PlainScalarBlockMap0,
___(ps.add_sibling());
___(ps.set_key_scalar_plain("a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~"));
___(ps.set_val_scalar_plain("val"));
___(ps.end_map());
___(ps.end_map_block());
___(ps.end_doc());
___(ps.end_stream());
}
@@ -491,7 +494,7 @@ ENGINE_TEST(PlainScalarFlow0Seq1,
"[\n"
"a!\"#$%&'()*+,-./09:;<=>?@AZ\\\n]"
,
"[a!\"#$%&'()*+,-./09:;<=>?@AZ\\]"
"[\n a!\"#$%&'()*+,\n -./09:;<=>?@AZ\\\n]\n"
,
"+STR\n"
"+DOC\n"
@@ -508,7 +511,7 @@ ENGINE_TEST(PlainScalarFlow0Seq1,
___(ps.set_val_scalar_plain("a!\"#$%&'()*+"));
___(ps.add_sibling());
___(ps.set_val_scalar_plain("-./09:;<=>?@AZ\\"));
___(ps.end_seq());
___(ps.end_seq_flow(multiline));
___(ps.end_doc());
___(ps.end_stream());
}

View File

@@ -246,7 +246,7 @@ R"(
? an explicit key: another value,
}
)",
N(MFS, L{
N(MFM, L{
N(KP|VP, "a simple key", "a value"),
N(KP|VP, "an explicit key", "another value"),
})
@@ -259,7 +259,7 @@ R"(
a simple key: a value,
}
)",
N(MFS, L{
N(MFM, L{
N(KP|VP, "an explicit key", "another value"),
N(KP|VP, "a simple key", "a value"),
})

View File

@@ -61,7 +61,7 @@ R"(a: [plain
follows
]
)",
N(MB, L{N(KP|SFS, "a", L{N(VP, "plain scalar follows")})})
N(MB, L{N(KP|SFM, "a", L{N(VP, "plain scalar follows")})})
);
// FIXME: this should be a parse error
@@ -73,7 +73,7 @@ R"(a: [plain
b: c
)",
N(MB, L{
N(KP|SFS, "a", L{N(VP, "plain scalar follows")}),
N(KP|SFM, "a", L{N(VP, "plain scalar follows")}),
N(KP|VP, "b", "c"),
})
);

View File

@@ -266,7 +266,7 @@ comment: |
)";
Tree t = parse_in_place(yml_buf);
auto s = emitrs_json<std::string>(t);
EXPECT_EQ(s, "{\"comment\": \"abc\\ndef\\n\"}");
EXPECT_EQ(s, "{\n \"comment\": \"abc\\ndef\\n\"\n}\n");
}
TEST(emit_json, issue297_escaped_chars)
@@ -490,7 +490,7 @@ TEST(json, issue390)
const Tree tree = parse_in_arena(R"(quntity: 9.5e7
quntity2: 95000000)");
EXPECT_TRUE(csubstr("9.5e7").is_number());
EXPECT_EQ(emitrs_json<std::string>(tree), R"({"quntity": 9.5e7,"quntity2": 95000000})");
EXPECT_EQ(emitrs_json<std::string>(tree), "{\n \"quntity\": 9.5e7,\n \"quntity2\": 95000000\n}\n");
}
TEST(parse_json, error_on_missing_seq_val)

View File

@@ -643,18 +643,19 @@ void test_invariants(ConstNodeRef const& n)
EXPECT_TRUE(n.is_container());
EXPECT_FALSE(n.is_val());
}
// check parent & sibling reciprocity
// check sibling reciprocity
for(ConstNodeRef s : n.siblings())
{
EXPECT_TRUE(n.has_sibling(s));
EXPECT_TRUE(s.has_sibling(n));
if(n.has_key())
if(n.has_key() && s.has_key())
{
EXPECT_TRUE(n.has_sibling(s.key()));
EXPECT_TRUE(s.has_sibling(n.key()));
}
EXPECT_EQ(s.parent().get(), n.parent().get());
}
// check parent/child reciprocity
if(n.parent().readable())
{
EXPECT_EQ(n.parent().num_children() > 1, n.has_other_siblings());
@@ -688,7 +689,10 @@ void test_invariants(ConstNodeRef const& n)
EXPECT_FALSE(n.is_seq());
for(ConstNodeRef ch : n.children())
{
EXPECT_TRUE(ch.has_key());
if(ch.type() != NOTYPE)
{
EXPECT_TRUE(ch.has_key());
}
}
}
if(n.has_key_anchor())
@@ -744,9 +748,10 @@ void test_invariants(ConstNodeRef const& n)
#undef _MORE_INFO
}
size_t test_tree_invariants(ConstNodeRef const& n)
static size_t test_tree_invariants(ConstNodeRef const& n)
{
auto parent = n.parent();
ConstNodeRef parent = n.parent();
if(n.get()->m_prev_sibling == NONE)
{
@@ -788,6 +793,7 @@ size_t test_tree_invariants(ConstNodeRef const& n)
void test_invariants(Tree const& t)
{
SCOPED_TRACE("tree invariants");
ASSERT_LE(t.size(), t.capacity());
EXPECT_EQ(t.size() + t.slack(), t.capacity());

View File

@@ -177,7 +177,7 @@ void test_engine_tree_from_yaml(EngineEvtTestCase const& tc, std::string const&
#endif
std::string actual = emitrs_yaml<std::string>(tree);
_c4dbgpf("~~~\n{}~~~\n", actual);
EXPECT_EQ(actual, tc.emitted);
EXPECT_EQ(tc.expected_emitted, actual);
}

View File

@@ -46,49 +46,9 @@ void test_compare_events(csubstr ref_evts,
bool ignore_tag_normalization);
//-----------------------------------------------------------------------------
struct EngineEvtTestCase
{
EngineEvtTestCase( std::string s , std::string ev) : test_case_flags( ), expected_error_location( ), parsed(s ), emitted(std::move(s)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase( std::string p, std::string e, std::string ev) : test_case_flags( ), expected_error_location( ), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p, std::string e, std::string ev) : test_case_flags(tf), expected_error_location( ), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p , std::string ev) : test_case_flags(tf), expected_error_location( ), parsed(p ), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase( Location linecol_, std::string p , std::string ev) : test_case_flags( ), expected_error_location(linecol_), parsed(p ), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p, std::string e, std::string ev) : test_case_flags(tf), expected_error_location(linecol_), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p , std::string ev) : test_case_flags(tf), expected_error_location(linecol_), parsed(p ), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase( std::string s , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location( ), parsed(s ), emitted(std::move(s)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase( std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location( ), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location( ), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location( ), parsed(p ), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase( Location linecol_, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location(linecol_), parsed(p ), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location(linecol_), parsed(std::move(p)), emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location(linecol_), parsed( p), emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
TestCaseFlags_e test_case_flags;
Location expected_error_location;
std::string parsed;
std::string emitted;
std::string expected_events;
std::vector<extra::IntEventWithScalar> expected_ints;
bool expected_ints_enabled;
};
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_testsuite_from_events(const EngineEvtTestCase& tc)
{
extra::EventHandlerTestSuite::EventSink sink;
extra::EventHandlerTestSuite handler(&sink);
handler.reset();
EventProducerFn<extra::EventHandlerTestSuite> event_producer;
event_producer(handler);
csubstr result = sink;
_c4dbgpf("~~~\n{}~~~\n", result);
EXPECT_EQ(std::string(result.str, result.len), tc.expected_events);
}
struct Separator {};
template<class Handler, class ArgTransformer>
struct EventTransformer
@@ -103,6 +63,7 @@ struct EventTransformer
#define fwd(evt) void evt() { handler.evt(); }
#define fwds(evt) void evt(csubstr s) { handler.evt(transformer(s)); }
#define fwdb(evt) void evt(bool v) { handler.evt(v); }
fwd(begin_stream)
fwd(end_stream)
@@ -115,22 +76,26 @@ struct EventTransformer
fwd(begin_map_key_block)
fwd(begin_map_val_flow)
fwd(begin_map_val_block)
fwd(end_map)
fwd(end_map_block)
fwdb(end_map_flow)
fwd(begin_seq_key_flow)
fwd(begin_seq_key_block)
fwd(begin_seq_val_flow)
fwd(begin_seq_val_block)
fwd(end_seq)
fwd(end_seq_block)
fwdb(end_seq_flow)
fwd(add_sibling)
fwd(actually_val_is_first_key_of_new_map_flow)
fwd(actually_val_is_first_key_of_new_map_block)
fwd(mark_key_scalar_unfiltered)
fwd(mark_val_scalar_unfiltered)
fwd(set_key_scalar_plain_empty)
fwd(set_val_scalar_plain_empty)
fwds(set_key_scalar_plain)
fwds(set_val_scalar_plain)
fwds(set_key_scalar_dquoted)
@@ -154,6 +119,7 @@ struct EventTransformer
#undef fwd
#undef fwds
#undef fwdb
};
template<class Handler>
struct TransformToSourceBufferOrArena
@@ -175,6 +141,62 @@ struct TransformToSourceBufferOrArena
};
//-----------------------------------------------------------------------------
struct EngineEvtTestCase
{
EngineEvtTestCase( std::string s , std::string ev) : test_case_flags( ), expected_error_location( ), parsed(s ), expected_emitted(std::move(s)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase( std::string p, std::string e, std::string ev) : test_case_flags( ), expected_error_location( ), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p, std::string e, std::string ev) : test_case_flags(tf), expected_error_location( ), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p , std::string ev) : test_case_flags(tf), expected_error_location( ), parsed(p ), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) {}
EngineEvtTestCase( Location linecol_, std::string p , std::string ev) : test_case_flags( ), expected_error_location(linecol_), parsed(p ), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p, std::string e, std::string ev) : test_case_flags(tf), expected_error_location(linecol_), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p , std::string ev) : test_case_flags(tf), expected_error_location(linecol_), parsed(p ), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(), expected_ints_enabled(false) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase( std::string s , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location( ), parsed(s ), expected_emitted(std::move(s)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase( std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location( ), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location( ), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase(TestCaseFlags_e tf, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location( ), parsed(p ), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) {}
EngineEvtTestCase( Location linecol_, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags( ), expected_error_location(linecol_), parsed(p ), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p, std::string e, std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location(linecol_), parsed(std::move(p)), expected_emitted(std::move(e)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
EngineEvtTestCase(TestCaseFlags_e tf, Location linecol_, std::string p , std::string ev, std::vector<extra::IntEventWithScalar> ints) : test_case_flags(tf), expected_error_location(linecol_), parsed( p), expected_emitted(std::move(p)), expected_events(std::move(ev)), expected_ints(std::move(ints)), expected_ints_enabled(true) { _RYML_ASSERT_BASIC(linecol_); }
TestCaseFlags_e test_case_flags;
Location expected_error_location;
std::string parsed;
std::string expected_emitted;
std::string expected_events;
std::vector<extra::IntEventWithScalar> expected_ints;
bool expected_ints_enabled;
};
//-----------------------------------------------------------------------------
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_testsuite_from_events(const EngineEvtTestCase& tc)
{
extra::EventHandlerTestSuite::EventSink sink;
extra::EventHandlerTestSuite handler(&sink);
handler.reset();
EventProducerFn<extra::EventHandlerTestSuite> event_producer;
event_producer(handler);
csubstr result = sink;
_c4dbgpf("~~~\n{}~~~\n", result);
EXPECT_EQ(std::string(result.str, result.len), tc.expected_events);
}
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_error_testsuite_from_events(const EngineEvtTestCase& tc)
{
ExpectError::check_error_parse([&]{
test_engine_testsuite_from_events<EventProducerFn>(tc);
});
}
//-----------------------------------------------------------------------------
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_ints_from_events(EngineEvtTestCase const& tc)
{
@@ -232,6 +254,17 @@ C4_NO_INLINE void test_engine_ints_from_events(EngineEvtTestCase const& tc)
}
}
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_error_ints_from_events(const EngineEvtTestCase& tc)
{
ExpectError::check_error_parse([&]{
test_engine_ints_from_events<EventProducerFn>(tc);
});
}
//-----------------------------------------------------------------------------
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_tree_from_events(EngineEvtTestCase const& tc)
{
@@ -250,15 +283,27 @@ C4_NO_INLINE void test_engine_tree_from_events(EngineEvtTestCase const& tc)
EventHandlerTree handler(&tree, tree.root_id());
EventProducerFn<EventHandlerTree> event_producer;
event_producer(handler);
test_invariants(tree);
#ifdef RYML_DBG
print_tree(tree);
#endif
std::string actual = emitrs_yaml<std::string>(tree);
_c4dbgpf("~~~\n{}~~~\n", actual);
EXPECT_EQ(actual, tc.emitted);
EXPECT_EQ(tc.expected_emitted, actual);
}
}
template<template<class> class EventProducerFn>
C4_NO_INLINE void test_engine_error_tree_from_events(const EngineEvtTestCase& tc)
{
ExpectError::check_error_parse([&]{
test_engine_tree_from_events<EventProducerFn>(tc);
});
}
//-----------------------------------------------------------------------------
void test_engine_testsuite_from_yaml(EngineEvtTestCase const& yaml, std::string const& parsed_yaml, ParserOptions opts);
void test_engine_ints_from_yaml(EngineEvtTestCase const& yaml, std::string const& parsed_yaml, ParserOptions opts);
void test_engine_tree_from_yaml(EngineEvtTestCase const& yaml, std::string const& parsed_yaml, ParserOptions opts);
@@ -285,12 +330,14 @@ void test_expected_error_tree_from_yaml(std::string const& parsed_yaml, Location
#endif
//-----------------------------------------------------------------------------
#define ENGINE_TEST_ERRLOC(name, location, refyaml) \
\
\
TEST(EngineTest, name##_err_testsuite_from_yaml) \
TEST(name, err_testsuite_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_testsuite_from_yaml"); \
@@ -299,7 +346,7 @@ TEST(EngineTest, name##_err_testsuite_from_yaml) \
} \
\
\
TEST(EngineTest, name##_err_ints_from_yaml) \
TEST(name, err_ints_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_ints_from_yaml"); \
@@ -308,7 +355,7 @@ TEST(EngineTest, name##_err_ints_from_yaml) \
} \
\
\
TEST(EngineTest, name##_err_tree_from_yaml) \
TEST(name, err_tree_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_tree_from_yaml"); \
@@ -322,7 +369,7 @@ TEST(EngineTest, name##_err_tree_from_yaml) \
#define ENGINE_TEST_ERR(name, refyaml) \
\
\
TEST(EngineTest, name##_err_testsuite_from_yaml) \
TEST(name, err_testsuite_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_testsuite_from_yaml"); \
@@ -331,7 +378,7 @@ TEST(EngineTest, name##_err_testsuite_from_yaml) \
} \
\
\
TEST(EngineTest, name##_err_ints_from_yaml) \
TEST(name, err_ints_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_ints_from_yaml"); \
@@ -340,7 +387,7 @@ TEST(EngineTest, name##_err_ints_from_yaml) \
} \
\
\
TEST(EngineTest, name##_err_tree_from_yaml) \
TEST(name, err_tree_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_tree_from_yaml"); \
@@ -349,6 +396,86 @@ TEST(EngineTest, name##_err_tree_from_yaml) \
}
//-----------------------------------------------------------------------------
#define ENGINE_TEST_DECLARE_CASE(name, ...) \
\
\
static const EngineEvtTestCase test_case_##name(__VA_ARGS__); \
\
\
/* declare a function that will produce a \
sequence of events */ \
template<class EvtHandlerClass> \
static void stream_events_##name(EvtHandlerClass &handler); \
\
\
/* package the function into a class */ \
template<class EvtHandlerClass> \
struct name \
{ \
void operator() (EvtHandlerClass &handler) \
{ \
stream_events_##name(handler); \
} \
}; \
\
#define ENGINE_TEST_DEFINE_CASE(name) \
\
/* finally, define the function that will produce the \
* sequence of events */ \
template<class EvtHandlerClass> \
void stream_events_##name(EvtHandlerClass &ps)
//-----------------------------------------------------------------------------
#define ENGINE_TEST_ERR_FROM_EVENTS(name, ...) \
\
\
ENGINE_TEST_DECLARE_CASE(name, __VA_ARGS__) \
\
\
TEST(name, engine_err_testsuite_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_testsuite_from_events"); \
auto const &tc = test_case_##name; \
test_engine_error_testsuite_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
\
TEST(name, engine_err_ints_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_ints_from_events"); \
auto const &tc = test_case_##name; \
test_engine_error_ints_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
\
TEST(name, engine_err_tree_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_err_tree_from_events"); \
auto const &tc = test_case_##name; \
test_engine_error_tree_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
\
ENGINE_TEST_DEFINE_CASE(name) \
\
\
//-----------------------------------------------------------------------------
@@ -359,117 +486,99 @@ TEST(EngineTest, name##_err_tree_from_yaml) \
/* declare a parse engine test for the existing event handlers.
* The extra arguments are for the ctor of EngineEvtTestCase */
#define ENGINE_TEST_(name, opts, ...) \
\
\
static const EngineEvtTestCase test_case_##name(__VA_ARGS__); \
\
\
/* declare a function that will produce a \
sequence of events */ \
template<class EvtHandlerClass> \
void name##_impl(EvtHandlerClass &handler); \
\
\
/* package the function into a class */ \
template<class EvtHandlerClass> \
struct name \
{ \
void operator() (EvtHandlerClass &handler) \
{ \
name##_impl(handler); \
} \
}; \
\
\
TEST(EngineTest, name##_testsuite_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_events"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(EngineTest, name##_ints_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_ints_from_events"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(EngineTest, name##_tree_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_events"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
\
\
TEST(EngineTest, name##_testsuite_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(EngineTest, name##_ints_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_event_ints_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(EngineTest, name##_tree_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
\
\
TEST(EngineTest, name##_testsuite_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_yaml_with_comments"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_yaml_with_comments(tc, opts); \
} \
\
TEST(EngineTest, name##_ints_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_ints_from_yaml_with_comments"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_yaml_with_comments(tc, opts); \
} \
\
TEST(EngineTest, name##_tree_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_yaml_with_comments(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
\
/* define the function that will produce the \
* sequence of events */ \
template<class EvtHandlerClass> \
void name##_impl(EvtHandlerClass &ps)
#define ENGINE_TEST_(name, opts, ...) \
\
\
ENGINE_TEST_DECLARE_CASE(name, __VA_ARGS__) \
\
\
TEST(name, testsuite_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_events"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(name, ints_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_ints_from_events"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(name, tree_from_events) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_events"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_events<name>(tc); \
_RYML_SHOWFILELINE(name); \
} \
\
\
\
TEST(name, testsuite_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(name, ints_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_event_ints_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
TEST(name, tree_from_yaml) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_yaml(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
\
\
TEST(name, testsuite_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_testsuite_from_yaml_with_comments"); \
auto const &tc = test_case_##name; \
test_engine_testsuite_from_yaml_with_comments(tc, opts); \
} \
\
TEST(name, ints_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_ints_from_yaml_with_comments"); \
auto const &tc = test_case_##name; \
test_engine_ints_from_yaml_with_comments(tc, opts); \
} \
\
TEST(name, tree_from_yaml_with_comments) \
{ \
_RYML_SHOWFILELINE(name); \
SCOPED_TRACE(#name "_tree_from_yaml"); \
auto const &tc = test_case_##name; \
test_engine_tree_from_yaml_with_comments(tc, opts); \
_RYML_SHOWFILELINE(name); \
} \
\
\
ENGINE_TEST_DEFINE_CASE(name) \
\
\

View File

@@ -706,7 +706,7 @@ ADD_CASE_TO_GROUP("empty map, multiline",
R"({
}
)",
MFS
MFM
);
ADD_CASE_TO_GROUP("empty map, multilines",
@@ -714,7 +714,7 @@ R"({
# foo bar baz akjasdkj
}
)",
MFS
MFM
);
ADD_CASE_TO_GROUP("simple map, explicit, single line",
@@ -729,7 +729,7 @@ bar: 1,
baz: 2,
bat: 3
})",
N(MFS, L{N{KP|VP, "foo", "0"}, N{KP|VP, "bar", "1"}, N{KP|VP, "baz", "2"}, N{KP|VP, "bat", "3"}})
N(MFM, L{N{KP|VP, "foo", "0"}, N{KP|VP, "bar", "1"}, N{KP|VP, "baz", "2"}, N{KP|VP, "bat", "3"}})
);
ADD_CASE_TO_GROUP("simple map, explicit, multiline, indented",
@@ -739,7 +739,7 @@ R"({
baz: 2,
bat: 3
})",
N(MFS, L{N{KP|VP, "foo", "0"}, N{KP|VP, "bar", "1"}, N{KP|VP, "baz", "2"}, N{KP|VP, "bat", "3"}})
N(MFM, L{N{KP|VP, "foo", "0"}, N{KP|VP, "bar", "1"}, N{KP|VP, "baz", "2"}, N{KP|VP, "bat", "3"}})
);
ADD_CASE_TO_GROUP("simple map",
@@ -1121,7 +1121,7 @@ c3 ,d3: val3, 0003
e3 ,f3: val3 , 0003
h3 ,i3: val3 ,0003
})",
N(MFS, L{ // this is crazy...
N(MFM, L{ // this is crazy...
N(KP|VN, "a0", {}),
N(KP|VP, "b0", "val0"), N(KP|VN, "0000 c0", {}),
N(KP|VP, "d0", "val0"), N(KP|VN, "0000 e0", {}),
@@ -1221,12 +1221,12 @@ must be ok : {
c2 : d,
}
})",
N(MFS, L{
N(MFM, L{
N(KP|MFS, "oka", L{N(KP|VP, "a", "b")}),
N(KP|VP, "is it ok", "let's see"),
N(KP|MFS, "okb", L{N(KP|VP, "a", "b")}),
N(KP|MFS, "ok", L{N(KP|VP, "a", "b")}),
N(KP|MFS, "must be ok", L{N(KP|VP, "c0", "d"), N(KP|VP, "c1", "d"), N(KP|VP, "c2", "d")}),
N(KP|MFM, "must be ok", L{N(KP|VP, "c0", "d"), N(KP|VP, "c1", "d"), N(KP|VP, "c2", "d")}),
})
);
@@ -1257,7 +1257,7 @@ R"({
: a,
: b,
})",
N(MFS, L{
N(MFM, L{
N(KN|VP, "", "a"),
N(KN|VP, "", "b"),
}));
@@ -1269,7 +1269,7 @@ R"({
:
b,
})",
N(MFS, L{
N(MFM, L{
N(KN|VP, "", "a"),
N(KN|VP, "", "b"),
}));
@@ -1281,7 +1281,7 @@ R"({-k
:
b,
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "-k", "a"),
N(KP|VP, "-z", "b"),
}));
@@ -1293,7 +1293,7 @@ R"({:k
:
b,
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, ":k", "a"),
N(KP|VP, ":z", "b"),
}));
@@ -1304,7 +1304,7 @@ R"({foo
baz
: bat
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "foo", "bar"),
N(KP|VP, "baz", "bat"),
}));
@@ -1317,7 +1317,7 @@ baz
:
bat
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "foo", "bar"),
N(KP|VP, "baz", "bat"),
}));
@@ -1357,7 +1357,7 @@ R"(---
)",
N(STREAM,
L{
N(DOC|MFS, L{
N(DOC|MFM, L{
N(KD|VD,"foo0","bar"),
N(KD|VP,"foo1","bar"),
N(KD|MFS,"foo3", L{N(KD|VP,"a","map")}),

View File

@@ -25,7 +25,7 @@ R"({
}
)",
MFS
MFM
);
@@ -36,7 +36,7 @@ R"({
}
)",
MFS
MFM
);
}

View File

@@ -22,7 +22,7 @@ foo: {foo0: 00, bar0: 01, baz0: 02},
bar: {foo1: 10, bar1: 11, baz1: 12},
baz: {foo2: 20, bar2: 21, baz2: 22}
})",
N(MFS, L{
N(MFM, L{
N{KP|MFS, "foo", L{N{KP|VP, "foo0", "00"}, N{KP|VP, "bar0", "01"}, N{KP|VP, "baz0", "02"}}},
N{KP|MFS, "bar", L{N{KP|VP, "foo1", "10"}, N{KP|VP, "bar1", "11"}, N{KP|VP, "baz1", "12"}}},
N{KP|MFS, "baz", L{N{KP|VP, "foo2", "20"}, N{KP|VP, "bar2", "21"}, N{KP|VP, "baz2", "22"}}},

View File

@@ -25,16 +25,16 @@ R"({
baz1: {foo2: 220, bar2: 221, baz2: 222}
}
})",
N(MFS, L{
N{KP|MFS, "foo0", L{
N(MFM, L{
N{KP|MFM, "foo0", L{
N{KP|MFS, "foo1", L{N{KP|VP, "foo2", "000"}, N{KP|VP, "bar2", "001"}, N{KP|VP, "baz2", "002"}}},
N{KP|MFS, "bar1", L{N{KP|VP, "foo2", "010"}, N{KP|VP, "bar2", "011"}, N{KP|VP, "baz2", "012"}}},
N{KP|MFS, "baz1", L{N{KP|VP, "foo2", "020"}, N{KP|VP, "bar2", "021"}, N{KP|VP, "baz2", "022"}}} }},
N{KP|MFS, "bar0", L{
N{KP|MFM, "bar0", L{
N{KP|MFS, "foo1", L{N{KP|VP, "foo2", "100"}, N{KP|VP, "bar2", "101"}, N{KP|VP, "baz2", "102"}}},
N{KP|MFS, "bar1", L{N{KP|VP, "foo2", "110"}, N{KP|VP, "bar2", "111"}, N{KP|VP, "baz2", "112"}}},
N{KP|MFS, "baz1", L{N{KP|VP, "foo2", "120"}, N{KP|VP, "bar2", "121"}, N{KP|VP, "baz2", "122"}}} }},
N{KP|MFS, "baz0", L{
N{KP|MFM, "baz0", L{
N{KP|MFS, "foo1", L{N{KP|VP, "foo2", "200"}, N{KP|VP, "bar2", "201"}, N{KP|VP, "baz2", "202"}}},
N{KP|MFS, "bar1", L{N{KP|VP, "foo2", "210"}, N{KP|VP, "bar2", "211"}, N{KP|VP, "baz2", "212"}}},
N{KP|MFS, "baz1", L{N{KP|VP, "foo2", "220"}, N{KP|VP, "bar2", "221"}, N{KP|VP, "baz2", "222"}}} }},

View File

@@ -25,18 +25,18 @@ R"({
baz1: { foo2: {foo3: 2200, bar3: 2201, baz3: 2202}, bar2: {foo3: 2210, bar3: 2211, baz3: 2212}, baz2: {foo3: 2220, bar3: 2221, baz3: 2222} },
},
})",
N(MFS, L{
N(KP|MFS, "foo0", L{
N(MFM, L{
N(KP|MFM, "foo0", L{
N(KP|MFS, "foo1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "0000"), N(KP|VP, "bar3", "0001"), N(KP|VP, "baz3", "0002")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "0010"), N(KP|VP, "bar3", "0011"), N(KP|VP, "baz3", "0012")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "0020"), N(KP|VP, "bar3", "0021"), N(KP|VP, "baz3", "0022")})}),
N(KP|MFS, "bar1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "0100"), N(KP|VP, "bar3", "0101"), N(KP|VP, "baz3", "0102")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "0110"), N(KP|VP, "bar3", "0111"), N(KP|VP, "baz3", "0112")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "0120"), N(KP|VP, "bar3", "0121"), N(KP|VP, "baz3", "0122")})}),
N(KP|MFS, "baz1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "0200"), N(KP|VP, "bar3", "0201"), N(KP|VP, "baz3", "0202")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "0210"), N(KP|VP, "bar3", "0211"), N(KP|VP, "baz3", "0212")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "0220"), N(KP|VP, "bar3", "0221"), N(KP|VP, "baz3", "0222")})}),
}),
N(KP|MFS, "bar0", L{
N(KP|MFM, "bar0", L{
N(KP|MFS, "foo1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "1000"), N(KP|VP, "bar3", "1001"), N(KP|VP, "baz3", "1002")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "1010"), N(KP|VP, "bar3", "1011"), N(KP|VP, "baz3", "1012")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "1020"), N(KP|VP, "bar3", "1021"), N(KP|VP, "baz3", "1022")})}),
N(KP|MFS, "bar1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "1100"), N(KP|VP, "bar3", "1101"), N(KP|VP, "baz3", "1102")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "1110"), N(KP|VP, "bar3", "1111"), N(KP|VP, "baz3", "1112")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "1120"), N(KP|VP, "bar3", "1121"), N(KP|VP, "baz3", "1122")})}),
N(KP|MFS, "baz1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "1200"), N(KP|VP, "bar3", "1201"), N(KP|VP, "baz3", "1202")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "1210"), N(KP|VP, "bar3", "1211"), N(KP|VP, "baz3", "1212")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "1220"), N(KP|VP, "bar3", "1221"), N(KP|VP, "baz3", "1222")})}),
}),
N(KP|MFS, "baz0", L{
N(KP|MFM, "baz0", L{
N(KP|MFS, "foo1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "2000"), N(KP|VP, "bar3", "2001"), N(KP|VP, "baz3", "2002")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "2010"), N(KP|VP, "bar3", "2011"), N(KP|VP, "baz3", "2012")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "2020"), N(KP|VP, "bar3", "2021"), N(KP|VP, "baz3", "2022")})}),
N(KP|MFS, "bar1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "2100"), N(KP|VP, "bar3", "2101"), N(KP|VP, "baz3", "2102")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "2110"), N(KP|VP, "bar3", "2111"), N(KP|VP, "baz3", "2112")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "2120"), N(KP|VP, "bar3", "2121"), N(KP|VP, "baz3", "2122")})}),
N(KP|MFS, "baz1", L{N(KP|MFS, "foo2", L{N(KP|VP, "foo3", "2200"), N(KP|VP, "bar3", "2201"), N(KP|VP, "baz3", "2202")}), N(KP|MFS, "bar2", L{N(KP|VP, "foo3", "2210"), N(KP|VP, "bar3", "2211"), N(KP|VP, "baz3", "2212")}), N(KP|MFS, "baz2", L{N(KP|VP, "foo3", "2220"), N(KP|VP, "bar3", "2221"), N(KP|VP, "baz3", "2222")})}),

View File

@@ -79,7 +79,7 @@ N(MB, L{__(a), __(b), __(c), __(.foo), __(.), __(-a), __(+b), __(/b), __(:c), __
ADD_CASE_TO_GROUP("funny names, map expl",
R"({a: a, b: b, c: c, .foo: .foo, .: ., -a: -a, +b: +b, /b: /b, :c: :c, $g: $g,
'*': '*', '*a':'*a'})",
N(MFS, L{__(a), __(b), __(c), __(.foo), __(.), __(-a), __(+b), __(/b), __(:c), __($g),
N(MFM, L{__(a), __(b), __(c), __(.foo), __(.), __(-a), __(+b), __(/b), __(:c), __($g),
N(KS|VS, "*", "*"), N(KS|VS, "*a", "*a")})
);
}

View File

@@ -1104,7 +1104,7 @@ with many lines
and yet more, deindented
]
)",
N(SFS, L{
N(SFM, L{
N(VP, "a plain scalar with several lines\nand blank lines\nas well"),
N(VP, "and another plain scalar"),
N(VP, "and yet another one\n\n\nwith many lines\nand yet more"),

View File

@@ -87,6 +87,17 @@ TEST(simple_seq, missing_quoted_key)
});
}
TEST(simple_seq, block_nested_with_tags)
{
std::string yaml = R"(- !!seq
- !!seq
- foo
- bar
)";
Tree t = parse_in_arena(to_csubstr(yaml));
EXPECT_EQ(yaml, emitrs_yaml<std::string>(t));
}
TEST(simple_seq, deeply_nested_to_cover_parse_stack_resizes)
{
csubstr yaml = R"(
@@ -259,7 +270,7 @@ R"([
2,
3
])",
N(SFS, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"},})
N(SFM, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"},})
);
ADD_CASE_TO_GROUP("simple seq, flow, multiline, unindented, trailcomma",
@@ -269,7 +280,7 @@ R"([
2,
3,
])",
N(SFS, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
N(SFM, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
);
ADD_CASE_TO_GROUP("simple seq, flow, multiline, comments inline",
@@ -279,7 +290,7 @@ R"([
2, # bla2
3 # bla3
])",
N(SFS, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
N(SFM, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
);
ADD_CASE_TO_GROUP("simple seq, flow, multiline, comments prev line",
@@ -293,7 +304,7 @@ R"([
# bla3
3
])",
N(SFS, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
N(SFM, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
);
ADD_CASE_TO_GROUP("simple seq, flow, multiline, indented",
@@ -303,7 +314,7 @@ R"([
2,
3
])",
N(SFS, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
N(SFM, L{N{VP, "0"}, N{VP, "1"}, N{VP, "2"}, N{VP, "3"}})
);
ADD_CASE_TO_GROUP("simple seq, comments inline",
@@ -543,7 +554,7 @@ R"([
a , b, "c , d", 'e , f',
a ,b, "c ,d", 'e ,f',
])",
N(SFS, L{
N(SFM, L{
N(VP, "a"), N(VP, "b"), N(VD, "c,d"), N(VS, "e,f"),
N(VP, "a"), N(VP, "b"), N(VD, "c, d"), N(VS, "e, f"),
N(VP, "a"), N(VP, "b"), N(VD, "c , d"), N(VS, "e , f"),
@@ -591,7 +602,7 @@ R"([
:z: , # this is a map (when tab tokens are enabled)
]
)",
N(SFS, L{
N(SFM, L{
N(VP, ":a"),
N(VP, ":0"),
N(VP, "::"),
@@ -719,7 +730,7 @@ R"([
a : b, "c : d", 'e : f',
a :b, "c :d", 'e :f',
])",
N(SFS, L{
N(SFM, L{
N(VP, "a:b"), N(VD, "c:d"), N(VS, "e:f"),
N(MFS, L{N(KP|VP, "a", "b")}), N(VD, "c: d"), N(VS, "e: f"),
N(MFS, L{N(KP|VP, "a", "b")}), N(VD, "c : d"), N(VS, "e : f"),
@@ -757,7 +768,7 @@ R"([
, # this is needed because of the comment above
a #b, "c #d", 'e #f',
])",
N(SFS, L{
N(SFM, L{
N(VP, "a#b"), N(VD, "c#d"), N(VS, "e#f"),
N(VP, "a# b"), N(VD, "c# d"), N(VS, "e# f"),
N(VP, "a"),
@@ -794,7 +805,7 @@ R"([
a - b, "c - d", 'e - f',
a -b, "c -d", 'e -f',
])",
N(SFS, L{
N(SFM, L{
N(VP, "a-b"), N(VD, "c-d"), N(VS, "e-f"),
N(VP, "a- b"), N(VD, "c- d"), N(VS, "e- f"),
N(VP, "a - b"), N(VD, "c - d"), N(VS, "e - f"),
@@ -835,7 +846,7 @@ R"([
#a [b,
"c [d", 'e [f',
])",
N(SFS, L{
N(SFM, L{
/*N(VP, "a[b"), */ N(VD, "c[d"), N(VS, "e[f"),
/*N(VP, "a[ b"), */ N(VD, "c[ d"), N(VS, "e[ f"),
/*N(VP, "a [ b"),*/ N(VD, "c [ d"), N(VS, "e [ f"),
@@ -876,7 +887,7 @@ R"([
# a ]b,
"c ]d", 'e ]f',
])",
N(SFS, L{
N(SFM, L{
/*N(VP, "a]b"), */ N(VD, "c]d"), N(VS, "e]f"),
/*N(VP, "a] b"), */ N(VD, "c] d"), N(VS, "e] f"),
/*N(VP, "a ] b"),*/ N(VD, "c ] d"), N(VS, "e ] f"),
@@ -917,7 +928,7 @@ R"([
# a {b,
"c {d", 'e {f',
])",
N(SFS, L{
N(SFM, L{
/*N(VP, "a{b"), */ N(VD, "c{d"), N(VS, "e{f"),
/*N(VP, "a{ b"), */ N(VD, "c{ d"), N(VS, "e{ f"),
/*N(VP, "a { b"),*/ N(VD, "c { d"), N(VS, "e { f"),
@@ -958,7 +969,7 @@ R"([
# a }b,
"c }d", 'e }f',
])",
N(SFS, L{
N(SFM, L{
/*N(VP, "a}b"), */ N(VD, "c}d"), N(VS, "e}f"),
/*N(VP, "a} b"), */ N(VD, "c} d"), N(VS, "e} f"),
/*N(VP, "a } b"),*/ N(VD, "c } d"), N(VS, "e } f"),
@@ -1102,7 +1113,7 @@ R"([a:
b]
)",
N(SFS, L{N(MFS, L{N(KP|VP, "a", "b")})})
N(SFM, L{N(MFM, L{N(KP|VP, "a", "b")})})
);
}

View File

@@ -23,7 +23,7 @@ ADD_CASE_TO_GROUP("empty seq, multiline",
R"([
]
)",
SFS
SFM
);
ADD_CASE_TO_GROUP("empty seq, multilines",
@@ -33,7 +33,7 @@ R"([
]
)",
SFS
SFM
);
}

View File

@@ -36,7 +36,7 @@ R"([
[10, 11, 12],
[20, 21, 22],
])",
N(SFS, L{
N(SFM, L{
N(SFS, L{N(VP,"00"), N(VP,"01"), N(VP,"02")}),
N(SFS, L{N(VP,"10"), N(VP,"11"), N(VP,"12")}),
N(SFS, L{N(VP,"20"), N(VP,"21"), N(VP,"22")}),

View File

@@ -14,7 +14,7 @@ R"([
[[100, 101, 102], [110, 111, 112], [120, 121, 122]],
[[200, 201, 202], [210, 211, 212], [220, 221, 222]],
])",
N(SFS, L{
N(SFM, L{
N{SFS, L{N{SFS, L{N(VP, "000"), N(VP, "001"), N(VP, "002")}}, N{SFS, L{N(VP, "010"), N(VP, "011"), N(VP, "012")}}, N{SFS, L{N(VP, "020"), N(VP, "021"), N(VP, "022")}}}},
N{SFS, L{N{SFS, L{N(VP, "100"), N(VP, "101"), N(VP, "102")}}, N{SFS, L{N(VP, "110"), N(VP, "111"), N(VP, "112")}}, N{SFS, L{N(VP, "120"), N(VP, "121"), N(VP, "122")}}}},
N{SFS, L{N{SFS, L{N(VP, "200"), N(VP, "201"), N(VP, "202")}}, N{SFS, L{N(VP, "210"), N(VP, "211"), N(VP, "212")}}, N{SFS, L{N(VP, "220"), N(VP, "221"), N(VP, "222")}}}},
@@ -182,6 +182,20 @@ N(SB, L{
N{SB, L{N{SB, L{N(VP, "200"), N(VP, "201"), N(VP, "202")}}, N{SB, L{N(VP, "210"), N(VP, "211"), N(VP, "212")}}, N{SB, L{N(VP, "220"), N(VP, "221"), N(VP, "222")}}}},
})
);
ADD_CASE_TO_GROUP("nested seq x3 with tags",
R"(
- !!seq
- !!seq
- foo
- bar
)",
N(SB, L{
N(SB, TL("!!seq", L{N(SB, TL("!!seq", L{N(VP,"foo")}))})),
N(VP,"bar"),
})
);
}
} // namespace yml

View File

@@ -22,10 +22,10 @@ R"([
[[2100, 2101, 2102], [2110, 2111, 2112], [2120, 2121, 2122]],
[[2200, 2201, 2202], [2210, 2211, 2212], [2220, 2221, 2222]]],
])",
N(SFS, L{
N{SFS, L{N{SFS, L{N{SFS, L{N(VP, "0000"), N(VP, "0001"), N(VP, "0002")}}, N{SFS, L{N(VP, "0010"), N(VP, "0011"), N(VP, "0012")}}, N{SFS, L{N(VP, "0020"), N(VP, "0021"), N(VP, "0022")}}}}, N{SFS, L{N{SFS, L{N(VP, "0100"), N(VP, "0101"), N(VP, "0102")}}, N{SFS, L{N(VP, "0110"), N(VP, "0111"), N(VP, "0112")}}, N{SFS, L{N(VP, "0120"), N(VP, "0121"), N(VP, "0122")}}}}, N{SFS, L{N{SFS, L{N(VP, "0200"), N(VP, "0201"), N(VP, "0202")}}, N{SFS, L{N(VP, "0210"), N(VP, "0211"), N(VP, "0212")}}, N{SFS, L{N(VP, "0220"), N(VP, "0221"), N(VP, "0222")}}}}}},
N{SFS, L{N{SFS, L{N{SFS, L{N(VP, "1000"), N(VP, "1001"), N(VP, "1002")}}, N{SFS, L{N(VP, "1010"), N(VP, "1011"), N(VP, "1012")}}, N{SFS, L{N(VP, "1020"), N(VP, "1021"), N(VP, "1022")}}}}, N{SFS, L{N{SFS, L{N(VP, "1100"), N(VP, "1101"), N(VP, "1102")}}, N{SFS, L{N(VP, "1110"), N(VP, "1111"), N(VP, "1112")}}, N{SFS, L{N(VP, "1120"), N(VP, "1121"), N(VP, "1122")}}}}, N{SFS, L{N{SFS, L{N(VP, "1200"), N(VP, "1201"), N(VP, "1202")}}, N{SFS, L{N(VP, "1210"), N(VP, "1211"), N(VP, "1212")}}, N{SFS, L{N(VP, "1220"), N(VP, "1221"), N(VP, "1222")}}}}}},
N{SFS, L{N{SFS, L{N{SFS, L{N(VP, "2000"), N(VP, "2001"), N(VP, "2002")}}, N{SFS, L{N(VP, "2010"), N(VP, "2011"), N(VP, "2012")}}, N{SFS, L{N(VP, "2020"), N(VP, "2021"), N(VP, "2022")}}}}, N{SFS, L{N{SFS, L{N(VP, "2100"), N(VP, "2101"), N(VP, "2102")}}, N{SFS, L{N(VP, "2110"), N(VP, "2111"), N(VP, "2112")}}, N{SFS, L{N(VP, "2120"), N(VP, "2121"), N(VP, "2122")}}}}, N{SFS, L{N{SFS, L{N(VP, "2200"), N(VP, "2201"), N(VP, "2202")}}, N{SFS, L{N(VP, "2210"), N(VP, "2211"), N(VP, "2212")}}, N{SFS, L{N(VP, "2220"), N(VP, "2221"), N(VP, "2222")}}}}}},
N(SFM, L{
N{SFM, L{N{SFS, L{N{SFS, L{N(VP, "0000"), N(VP, "0001"), N(VP, "0002")}}, N{SFS, L{N(VP, "0010"), N(VP, "0011"), N(VP, "0012")}}, N{SFS, L{N(VP, "0020"), N(VP, "0021"), N(VP, "0022")}}}}, N{SFS, L{N{SFS, L{N(VP, "0100"), N(VP, "0101"), N(VP, "0102")}}, N{SFS, L{N(VP, "0110"), N(VP, "0111"), N(VP, "0112")}}, N{SFS, L{N(VP, "0120"), N(VP, "0121"), N(VP, "0122")}}}}, N{SFS, L{N{SFS, L{N(VP, "0200"), N(VP, "0201"), N(VP, "0202")}}, N{SFS, L{N(VP, "0210"), N(VP, "0211"), N(VP, "0212")}}, N{SFS, L{N(VP, "0220"), N(VP, "0221"), N(VP, "0222")}}}}}},
N{SFM, L{N{SFS, L{N{SFS, L{N(VP, "1000"), N(VP, "1001"), N(VP, "1002")}}, N{SFS, L{N(VP, "1010"), N(VP, "1011"), N(VP, "1012")}}, N{SFS, L{N(VP, "1020"), N(VP, "1021"), N(VP, "1022")}}}}, N{SFS, L{N{SFS, L{N(VP, "1100"), N(VP, "1101"), N(VP, "1102")}}, N{SFS, L{N(VP, "1110"), N(VP, "1111"), N(VP, "1112")}}, N{SFS, L{N(VP, "1120"), N(VP, "1121"), N(VP, "1122")}}}}, N{SFS, L{N{SFS, L{N(VP, "1200"), N(VP, "1201"), N(VP, "1202")}}, N{SFS, L{N(VP, "1210"), N(VP, "1211"), N(VP, "1212")}}, N{SFS, L{N(VP, "1220"), N(VP, "1221"), N(VP, "1222")}}}}}},
N{SFM, L{N{SFS, L{N{SFS, L{N(VP, "2000"), N(VP, "2001"), N(VP, "2002")}}, N{SFS, L{N(VP, "2010"), N(VP, "2011"), N(VP, "2012")}}, N{SFS, L{N(VP, "2020"), N(VP, "2021"), N(VP, "2022")}}}}, N{SFS, L{N{SFS, L{N(VP, "2100"), N(VP, "2101"), N(VP, "2102")}}, N{SFS, L{N(VP, "2110"), N(VP, "2111"), N(VP, "2112")}}, N{SFS, L{N(VP, "2120"), N(VP, "2121"), N(VP, "2122")}}}}, N{SFS, L{N{SFS, L{N(VP, "2200"), N(VP, "2201"), N(VP, "2202")}}, N{SFS, L{N(VP, "2210"), N(VP, "2211"), N(VP, "2212")}}, N{SFS, L{N(VP, "2220"), N(VP, "2221"), N(VP, "2222")}}}}}},
})
);

View File

@@ -21,7 +21,8 @@ TEST(seq_of_map, with_anchors)
a4: v4
)";
Tree t = parse_in_arena(yaml);
EXPECT_EQ(emitrs_yaml<std::string>(t), yaml);
std::string emitted = emitrs_yaml<std::string>(t);
EXPECT_EQ(yaml, emitted);
ASSERT_EQ(t.rootref().num_children(), 3u);
ASSERT_EQ(t[2].has_val_anchor(), true);
ASSERT_EQ(t[2].val_anchor(), "seq");
@@ -276,7 +277,7 @@ R"('implicit block key' : [
'implicit flow key s' : [val1, val2],
])",
N(MB, L{
N(KS|SFS, "implicit block key", L{
N(KS|SFM, "implicit block key", L{
N(MFS, L{N(KS|VP, "implicit flow key 1", "value1")}),
N(MFS, L{N(KS|VP, "implicit flow key 2", "value2")}),
N(MFS, L{N(KS|VP, "implicit flow key 3", "value3")}),
@@ -300,10 +301,10 @@ c : [
,
:
]})",
N(MFS, L{
N(KP|SFS, "a", L{N(MFS, L{N(KN|VP, "", "foo")}),}),
N(KP|SFS, "b", L{N(MFS, L{N(KN|VP, "", "foo")}),}),
N(KP|SFS, "c", L{N(MFS, L{N(KN|VN, "", {})}), N(MFS, L{N(KN|VN, "", {})}),}),
N(MFM, L{
N(KP|SFM, "a", L{N(MFM, L{N(KN|VP, "", "foo")}),}),
N(KP|SFM, "b", L{N(MFM, L{N(KN|VP, "", "foo")}),}),
N(KP|SFM, "c", L{N(MFM, L{N(KN|VN, "", {})}), N(MFM, L{N(KN|VN, "", {})}),}),
})
);

View File

@@ -488,32 +488,55 @@ references:
TEST(serialize, create_anchor_ref_trip)
{
const char expected_yaml[] = R"(anchor_objects:
- &id001
name: a_name
reference_list:
- *id001
const char expected_yaml[] = R"(anchors:
- &id0 val0
- &id1
key1: val1
- &id2
- val2
seq:
- *id0
- *id1
- *id2
seqflow: [*id0,*id1,*id2]
map:
*id0 : *id1
next: *id2
mapflow: {*id0 : *id1,next: *id2}
)";
Tree tree;
const id_type root_id = tree.root_id();
tree.to_map(root_id);
const id_type anchor_list_id = tree.append_child(root_id);
tree.to_seq(anchor_list_id, "anchor_objects");
const id_type anchor_map0 = tree.append_child(anchor_list_id);
tree.to_map(anchor_map0);
tree.set_val_anchor(anchor_map0, "id001");
const id_type anchor_elem0 = tree.append_child(anchor_map0);
tree.to_keyval(anchor_elem0, "name", "a_name");
const id_type ref_list_id = tree.append_child(root_id);
tree.to_seq(ref_list_id, "reference_list");
const id_type elem0_id = tree.append_child(ref_list_id);
tree.set_val_ref(elem0_id, "id001");
tree.rootref() |= MAP;
tree["anchors"] |= SEQ;
tree["anchors"][0] = "val0";
tree["anchors"][0].set_val_anchor("id0");
tree["anchors"][1] |= MAP;
tree["anchors"][1].set_val_anchor("id1");
tree["anchors"][1]["key1"] = "val1";
tree["anchors"][2] |= SEQ;
tree["anchors"][2].set_val_anchor("id2");
tree["anchors"][2][0] = "val2";
auto setseq = [](NodeRef n, NodeType style){
n |= SEQ|style;
n[0] = "id0";
n[0].set_val_ref("id0");
n[1] = "id1";
n[1].set_val_ref("id1");
n[2] = "id2";
n[2].set_val_ref("id2");
};
auto setmap = [](NodeRef n, NodeType style){
n |= MAP|style;
n["*id0"] = "id0";
n["*id0"].set_key_ref("id0");
n["*id0"].set_val_ref("id1");
n["next"] = "id2";
n["next"].set_val_ref("id2");
};
setseq(tree["seq"], BLOCK);
setseq(tree["seqflow"], FLOW_SL);
setmap(tree["map"], BLOCK);
setmap(tree["mapflow"], FLOW_SL);
EXPECT_EQ(emitrs_yaml<std::string>(tree), expected_yaml);
}

View File

@@ -749,7 +749,9 @@ TEST(keymap, flow_sl)
EXPECT_EQ(emit2str(tree), R"({foo: {1: 10,2: {2: 10,3: 10},4: 10,5: {5: 10,6: 10}}})");
tree._rem_flags(tree.root_id(), CONTAINER_STYLE);
tree._add_flags(tree.root_id(), BLOCK);
tree._rem_flags(tree["foo"][1].id(), BLOCK);
tree._add_flags(tree["foo"][1].id(), FLOW_SL);
tree._rem_flags(tree["foo"][3].id(), BLOCK);
tree._add_flags(tree["foo"][3].id(), FLOW_SL);
EXPECT_EQ(emit2str(tree), R"(foo:
1: 10

View File

@@ -1141,7 +1141,7 @@ ivar: !!int 0,
svar: !!str 0,
!!str key: !!int val
})",
N(MFS, L{
N(MFM, L{
N(KP|VP, "ivar", TS("!!int", "0")),
N(KP|VP, "svar", TS("!!str", "0")),
N(KP|VP, TS("!!str", "key"), TS("!!int", "val"))
@@ -1155,7 +1155,7 @@ svar: !str 0,
!str key: !int val
}
)",
N(MFS, L{
N(MFM, L{
N(KP|VP, "ivar", TS("!int", "0")),
N(KP|VP, "svar", TS("!str", "0")),
N(KP|VP, TS("!str", "key"), TS("!int", "val"))
@@ -1188,7 +1188,7 @@ R"([
!!str 0
]
)",
N(SFS, L{
N(SFM, L{
N(VP, TS("!!int", "0")),
N(VP, TS("!!str", "0")),
})
@@ -1200,7 +1200,7 @@ R"([
!str 0
]
)",
N(SFS, L{
N(SFM, L{
N(VP, TS("!int", "0")),
N(VP, TS("!str", "0")),
})
@@ -1212,7 +1212,7 @@ R"(some_seq: !!its_type [
!!str 0
]
)",
N(MB, L{N(KP|SFS, "some_seq", TL("!!its_type", L{
N(MB, L{N(KP|SFM, "some_seq", TL("!!its_type", L{
N(VP, TS("!!int", "0")),
N(VP, TS("!!str", "0")),
}))
@@ -1225,7 +1225,7 @@ R"(some_seq: !its_type [
!str 0
]
)",
N(MB, L{N(KP|SFS, "some_seq", TL("!its_type", L{
N(MB, L{N(KP|SFM, "some_seq", TL("!its_type", L{
N(VP, TS("!int", "0")),
N(VP, TS("!str", "0")),
}))