Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yaml-cpp
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
yaml-cpp
Commits
f17cfacd
Commit
f17cfacd
authored
May 19, 2012
by
Jesse Beder
Browse files
Options
Browse Files
Download
Plain Diff
Updated from core
parents
58d4fedf
030f4858
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1579 additions
and
110 deletions
+1579
-110
src/singledocparser.cpp
+1
-1
test/core/spectests.cpp
+1578
-109
No files found.
src/singledocparser.cpp
View file @
f17cfacd
...
@@ -57,7 +57,7 @@ namespace YAML
...
@@ -57,7 +57,7 @@ namespace YAML
// special case: a value node by itself must be a map, with no header
// special case: a value node by itself must be a map, with no header
if
(
m_scanner
.
peek
().
type
==
Token
::
VALUE
)
{
if
(
m_scanner
.
peek
().
type
==
Token
::
VALUE
)
{
eventHandler
.
OnMapStart
(
mark
,
""
,
NullAnchor
);
eventHandler
.
OnMapStart
(
mark
,
"
?
"
,
NullAnchor
);
HandleMap
(
eventHandler
);
HandleMap
(
eventHandler
);
eventHandler
.
OnMapEnd
();
eventHandler
.
OnMapEnd
();
return
;
return
;
...
...
test/core/spectests.cpp
View file @
f17cfacd
#include "spectests.h"
#include "spectests.h"
#include "specexamples.h"
#include "yaml-cpp/yaml.h"
#include "yaml-cpp/eventhandler.h"
#include <cassert>
#define YAML_ASSERT(cond) do { if(!(cond)) return " Assert failed: " #cond; } while(false)
namespace
Test
{
namespace
Test
{
struct
Event
{
enum
Type
{
DocStart
,
DocEnd
,
Null
,
Alias
,
Scalar
,
SeqStart
,
SeqEnd
,
MapStart
,
MapEnd
};
typedef
YAML
::
Mark
Mark
;
typedef
YAML
::
anchor_t
anchor_t
;
Event
(
Type
type_
,
const
std
::
string
&
tag_
,
anchor_t
anchor_
,
const
std
::
string
&
scalar_
)
:
type
(
type_
),
tag
(
tag_
),
anchor
(
anchor_
),
scalar
(
scalar_
)
{}
Type
type
;
std
::
string
tag
;
anchor_t
anchor
;
std
::
string
scalar
;
std
::
ostream
&
write
(
std
::
ostream
&
out
)
const
{
switch
(
type
)
{
case
DocStart
:
return
out
<<
"DocStart"
;
case
DocEnd
:
return
out
<<
"DocEnd"
;
case
Null
:
return
out
<<
"Null("
<<
anchor
<<
")"
;
case
Alias
:
return
out
<<
"Alias("
<<
anchor
<<
")"
;
case
Scalar
:
return
out
<<
"Scalar("
<<
tag
<<
", "
<<
anchor
<<
", "
<<
scalar
<<
")"
;
case
SeqStart
:
return
out
<<
"SeqStart("
<<
tag
<<
", "
<<
anchor
<<
")"
;
case
SeqEnd
:
return
out
<<
"SeqEnd"
;
case
MapStart
:
return
out
<<
"MapStart("
<<
tag
<<
", "
<<
anchor
<<
")"
;
case
MapEnd
:
return
out
<<
"MapEnd"
;
}
assert
(
false
);
return
out
;
}
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
out
,
const
Event
&
event
)
{
return
event
.
write
(
out
);
}
bool
operator
==
(
const
Event
&
a
,
const
Event
&
b
)
{
return
a
.
type
==
b
.
type
&&
a
.
tag
==
b
.
tag
&&
a
.
anchor
==
b
.
anchor
&&
a
.
scalar
==
b
.
scalar
;
}
bool
operator
!=
(
const
Event
&
a
,
const
Event
&
b
)
{
return
!
(
a
==
b
);
}
class
MockEventHandler
:
public
YAML
::
EventHandler
{
public
:
typedef
YAML
::
Mark
Mark
;
typedef
YAML
::
anchor_t
anchor_t
;
MockEventHandler
()
{}
virtual
void
OnDocumentStart
(
const
Mark
&
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
DocStart
,
""
,
0
,
""
));
}
virtual
void
OnDocumentEnd
()
{
m_actualEvents
.
push_back
(
Event
(
Event
::
DocEnd
,
""
,
0
,
""
));
}
virtual
void
OnNull
(
const
Mark
&
,
anchor_t
anchor
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
Null
,
""
,
anchor
,
""
));
}
virtual
void
OnAlias
(
const
Mark
&
,
anchor_t
anchor
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
Alias
,
""
,
anchor
,
""
));
}
virtual
void
OnScalar
(
const
Mark
&
,
const
std
::
string
&
tag
,
anchor_t
anchor
,
const
std
::
string
&
value
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
Scalar
,
tag
,
anchor
,
value
));
}
virtual
void
OnSequenceStart
(
const
Mark
&
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
SeqStart
,
tag
,
anchor
,
""
));
}
virtual
void
OnSequenceEnd
()
{
m_actualEvents
.
push_back
(
Event
(
Event
::
SeqEnd
,
""
,
0
,
""
));
}
virtual
void
OnMapStart
(
const
Mark
&
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
{
m_actualEvents
.
push_back
(
Event
(
Event
::
MapStart
,
tag
,
anchor
,
""
));
}
virtual
void
OnMapEnd
()
{
m_actualEvents
.
push_back
(
Event
(
Event
::
MapEnd
,
""
,
0
,
""
));
}
void
Expect
(
const
Event
&
event
)
{
m_expectedEvents
.
push_back
(
event
);
}
Test
::
TEST
Check
()
const
{
std
::
size_t
N
=
std
::
max
(
m_expectedEvents
.
size
(),
m_actualEvents
.
size
());
for
(
std
::
size_t
i
=
0
;
i
<
N
;
i
++
)
{
if
(
i
>=
m_expectedEvents
.
size
())
{
std
::
stringstream
out
;
for
(
std
::
size_t
j
=
0
;
j
<
i
;
j
++
)
{
out
<<
m_expectedEvents
[
j
]
<<
"
\n
"
;
}
out
<<
"EXPECTED: (no event expected)
\n
"
;
out
<<
"ACTUAL : "
<<
m_actualEvents
[
i
]
<<
"
\n
"
;
return
out
.
str
().
c_str
();
}
if
(
i
>=
m_actualEvents
.
size
())
{
std
::
stringstream
out
;
for
(
std
::
size_t
j
=
0
;
j
<
i
;
j
++
)
{
out
<<
m_expectedEvents
[
j
]
<<
"
\n
"
;
}
out
<<
"EXPECTED: "
<<
m_expectedEvents
[
i
]
<<
"
\n
"
;
out
<<
"ACTUAL : (no event recorded)
\n
"
;
return
out
.
str
().
c_str
();
}
if
(
m_expectedEvents
[
i
]
!=
m_actualEvents
[
i
])
{
std
::
stringstream
out
;
for
(
std
::
size_t
j
=
0
;
j
<
i
;
j
++
)
{
out
<<
m_expectedEvents
[
j
]
<<
"
\n
"
;
}
out
<<
"EXPECTED: "
<<
m_expectedEvents
[
i
]
<<
"
\n
"
;
out
<<
"ACTUAL : "
<<
m_actualEvents
[
i
]
<<
"
\n
"
;
return
out
.
str
().
c_str
();
}
}
return
true
;
}
std
::
vector
<
Event
>
m_expectedEvents
;
std
::
vector
<
Event
>
m_actualEvents
;
};
#define HANDLE(ex)\
MockEventHandler handler;\
std::stringstream stream(ex);\
YAML::Parser parser(stream);\
while(parser.HandleNextDocument(handler))\
#define EXPECT_DOC_START()\
do {\
handler.Expect(Event(Event::DocStart, "", 0, ""));\
} while(false)
#define EXPECT_DOC_END()\
do {\
handler.Expect(Event(Event::DocEnd, "", 0, ""));\
} while(false)
#define EXPECT_NULL(anchor)\
do {\
handler.Expect(Event(Event::Null, "", anchor, ""));\
} while(false)
#define EXPECT_ALIAS(anchor)\
do {\
handler.Expect(Event(Event::Alias, "", anchor, ""));\
} while(false)
#define EXPECT_SCALAR(tag, anchor, value)\
do {\
handler.Expect(Event(Event::Scalar, tag, anchor, value));\
} while(false)
#define EXPECT_SEQ_START(tag, anchor)\
do {\
handler.Expect(Event(Event::SeqStart, tag, anchor, ""));\
} while(false)
#define EXPECT_SEQ_END()\
do {\
handler.Expect(Event(Event::SeqEnd, "", 0, ""));\
} while(false)
#define EXPECT_MAP_START(tag, anchor)\
do {\
handler.Expect(Event(Event::MapStart, tag, anchor, ""));\
} while(false)
#define EXPECT_MAP_END()\
do {\
handler.Expect(Event(Event::MapEnd, "", 0, ""));\
} while(false)
#define DONE()\
do {\
return handler.Check();\
} while(false)
namespace
Spec
{
namespace
Spec
{
// 2.1
// 2.1
TEST
SeqScalars
()
TEST
SeqScalars
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_1
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.2
// 2.2
TEST
MappingScalarsToScalars
()
TEST
MappingScalarsToScalars
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_2
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.278"
);
EXPECT_SCALAR
(
"?"
,
0
,
"rbi"
);
EXPECT_SCALAR
(
"?"
,
0
,
"147"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.3
// 2.3
TEST
MappingScalarsToSequences
()
TEST
MappingScalarsToSequences
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_3
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"american"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Boston Red Sox"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Detroit Tigers"
);
EXPECT_SCALAR
(
"?"
,
0
,
"New York Yankees"
);
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"national"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"New York Mets"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Chicago Cubs"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Atlanta Braves"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.4
// 2.4
TEST
SequenceOfMappings
()
TEST
SequenceOfMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_4
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"name"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.278"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"name"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"63"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.288"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.5
// 2.5
TEST
SequenceOfSequences
()
TEST
SequenceOfSequences
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_5
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"name"
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.278"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"63"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.288"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.6
// 2.6
TEST
MappingOfMappings
()
TEST
MappingOfMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_6
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.278"
);
EXPECT_MAP_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"63"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.288"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.7
// 2.7
TEST
TwoDocumentsInAStream
()
TEST
TwoDocumentsInAStream
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_7
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Chicago Cubs"
);
EXPECT_SCALAR
(
"?"
,
0
,
"St Louis Cardinals"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.8
// 2.8
TEST
PlayByPlayFeed
()
TEST
PlayByPlayFeed
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_8
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"time"
);
EXPECT_SCALAR
(
"?"
,
0
,
"20:03:20"
);
EXPECT_SCALAR
(
"?"
,
0
,
"player"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"action"
);
EXPECT_SCALAR
(
"?"
,
0
,
"strike (miss)"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"time"
);
EXPECT_SCALAR
(
"?"
,
0
,
"20:03:47"
);
EXPECT_SCALAR
(
"?"
,
0
,
"player"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"action"
);
EXPECT_SCALAR
(
"?"
,
0
,
"grand slam"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.9
// 2.9
TEST
SingleDocumentWithTwoComments
()
TEST
SingleDocumentWithTwoComments
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_9
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"rbi"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.10
// 2.10
TEST
SimpleAnchor
()
TEST
SimpleAnchor
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_10
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
1
,
"Sammy Sosa"
);
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"rbi"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.11
// 2.11
TEST
MappingBetweenSequences
()
TEST
MappingBetweenSequences
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_11
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Detroit Tigers"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Chicago cubs"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-07-23"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"New York Yankees"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Atlanta Braves"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-07-02"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-08-12"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-08-14"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.12
// 2.12
TEST
CompactNestedMapping
()
TEST
CompactNestedMapping
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_12
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"item"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Super Hoop"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quantity"
);
EXPECT_SCALAR
(
"?"
,
0
,
"1"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"item"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Basketball"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quantity"
);
EXPECT_SCALAR
(
"?"
,
0
,
"4"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"item"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Big Shoes"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quantity"
);
EXPECT_SCALAR
(
"?"
,
0
,
"1"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.13
// 2.13
TEST
InLiteralsNewlinesArePreserved
()
TEST
InLiteralsNewlinesArePreserved
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_13
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\\
//||
\\
/||
\n
"
"// || ||__"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 2.14
// 2.14
TEST
InFoldedScalarsNewlinesBecomeSpaces
()
TEST
InFoldedScalarsNewlinesBecomeSpaces
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_14
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"Mark McGwire's year was crippled by a knee injury."
);
EXPECT_DOC_END
();
DONE
();
}
}
// 2.15
// 2.15
TEST
FoldedNewlinesArePreservedForMoreIndentedAndBlankLines
()
TEST
FoldedNewlinesArePreservedForMoreIndentedAndBlankLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_15
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"Sammy Sosa completed another fine season with great stats.
\n
"
"
\n
"
" 63 Home Runs
\n
"
" 0.288 Batting Average
\n
"
"
\n
"
"What a year!"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 2.16
// 2.16
TEST
IndentationDeterminesScope
()
TEST
IndentationDeterminesScope
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_16
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"name"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"accomplishment"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Mark set a major league home run record in 1998.
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"stats"
);
EXPECT_SCALAR
(
"!"
,
0
,
"65 Home Runs
\n
"
"0.278 Batting Average
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.17
// 2.17
TEST
QuotedScalars
()
TEST
QuotedScalars
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_17
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"unicode"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Sosa did fine.\u263A"
);
EXPECT_SCALAR
(
"?"
,
0
,
"control"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\b
1998
\t
1999
\t
2000
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"hex esc"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\x0d\x0a
is
\r\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"single"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\"
Howdy!
\"
he cried."
);
EXPECT_SCALAR
(
"?"
,
0
,
"quoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
" # Not a 'comment'."
);
EXPECT_SCALAR
(
"?"
,
0
,
"tie-fighter"
);
EXPECT_SCALAR
(
"!"
,
0
,
"|
\\
-*-/|"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.18
// 2.18
TEST
MultiLineFlowScalars
()
TEST
MultiLineFlowScalars
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_18
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"plain"
);
EXPECT_SCALAR
(
"?"
,
0
,
"This unquoted scalar spans many lines."
);
EXPECT_SCALAR
(
"?"
,
0
,
"quoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
"So does this quoted scalar.
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// TODO: 2.19 - 2.22 schema tags
// TODO: 2.19 - 2.22 schema tags
...
@@ -115,37 +579,228 @@ namespace Test {
...
@@ -115,37 +579,228 @@ namespace Test {
// 2.23
// 2.23
TEST
VariousExplicitTags
()
TEST
VariousExplicitTags
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_23
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"not-date"
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"2002-04-28"
);
EXPECT_SCALAR
(
"?"
,
0
,
"picture"
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:binary"
,
0
,
"R0lGODlhDAAMAIQAAP//9/X
\n
"
"17unp5WZmZgAAAOfn515eXv
\n
"
"Pz7Y6OjuDg4J+fn5OTk6enp
\n
"
"56enmleECcgggoBADs=
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"application specific tag"
);
EXPECT_SCALAR
(
"!something"
,
0
,
"The semantics of the tag
\n
"
"above may be different for
\n
"
"different documents."
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.24
// 2.24
TEST
GlobalTags
()
TEST
GlobalTags
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_24
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"tag:clarkevans.com,2002:shape"
,
0
);
EXPECT_MAP_START
(
"tag:clarkevans.com,2002:circle"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"center"
);
EXPECT_MAP_START
(
"?"
,
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"x"
);
EXPECT_SCALAR
(
"?"
,
0
,
"73"
);
EXPECT_SCALAR
(
"?"
,
0
,
"y"
);
EXPECT_SCALAR
(
"?"
,
0
,
"129"
);
EXPECT_MAP_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"radius"
);
EXPECT_SCALAR
(
"?"
,
0
,
"7"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"tag:clarkevans.com,2002:line"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"start"
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"finish"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"x"
);
EXPECT_SCALAR
(
"?"
,
0
,
"89"
);
EXPECT_SCALAR
(
"?"
,
0
,
"y"
);
EXPECT_SCALAR
(
"?"
,
0
,
"102"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"tag:clarkevans.com,2002:label"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"start"
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"color"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0xFFEEBB"
);
EXPECT_SCALAR
(
"?"
,
0
,
"text"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Pretty vector drawing."
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.25
// 2.25
TEST
UnorderedSets
()
TEST
UnorderedSets
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_25
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"tag:yaml.org,2002:set"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_NULL
(
0
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.26
// 2.26
TEST
OrderedMappings
()
TEST
OrderedMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_26
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"tag:yaml.org,2002:omap"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Mark McGwire"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy Sosa"
);
EXPECT_SCALAR
(
"?"
,
0
,
"63"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Ken Griffey"
);
EXPECT_SCALAR
(
"?"
,
0
,
"58"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.27
// 2.27
TEST
Invoice
()
TEST
Invoice
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_27
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"tag:clarkevans.com,2002:invoice"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"invoice"
);
EXPECT_SCALAR
(
"?"
,
0
,
"34843"
);
EXPECT_SCALAR
(
"?"
,
0
,
"date"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-01-23"
);
EXPECT_SCALAR
(
"?"
,
0
,
"bill-to"
);
EXPECT_MAP_START
(
"?"
,
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"given"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Chris"
);
EXPECT_SCALAR
(
"?"
,
0
,
"family"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Dumars"
);
EXPECT_SCALAR
(
"?"
,
0
,
"address"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"lines"
);
EXPECT_SCALAR
(
"!"
,
0
,
"458 Walkman Dr.
\n
"
"Suite #292
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"city"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Royal Oak"
);
EXPECT_SCALAR
(
"?"
,
0
,
"state"
);
EXPECT_SCALAR
(
"?"
,
0
,
"MI"
);
EXPECT_SCALAR
(
"?"
,
0
,
"postal"
);
EXPECT_SCALAR
(
"?"
,
0
,
"48046"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"ship-to"
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"product"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sku"
);
EXPECT_SCALAR
(
"?"
,
0
,
"BL394D"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quantity"
);
EXPECT_SCALAR
(
"?"
,
0
,
"4"
);
EXPECT_SCALAR
(
"?"
,
0
,
"description"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Basketball"
);
EXPECT_SCALAR
(
"?"
,
0
,
"price"
);
EXPECT_SCALAR
(
"?"
,
0
,
"450.00"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sku"
);
EXPECT_SCALAR
(
"?"
,
0
,
"BL4438H"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quantity"
);
EXPECT_SCALAR
(
"?"
,
0
,
"1"
);
EXPECT_SCALAR
(
"?"
,
0
,
"description"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Super Hoop"
);
EXPECT_SCALAR
(
"?"
,
0
,
"price"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2392.00"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"tax"
);
EXPECT_SCALAR
(
"?"
,
0
,
"251.42"
);
EXPECT_SCALAR
(
"?"
,
0
,
"total"
);
EXPECT_SCALAR
(
"?"
,
0
,
"4443.52"
);
EXPECT_SCALAR
(
"?"
,
0
,
"comments"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 2.28
// 2.28
TEST
LogFile
()
TEST
LogFile
()
{
{
return
" not written yet"
;
HANDLE
(
ex2_28
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Time"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-11-23 15:01:42 -5"
);
EXPECT_SCALAR
(
"?"
,
0
,
"User"
);
EXPECT_SCALAR
(
"?"
,
0
,
"ed"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Warning"
);
EXPECT_SCALAR
(
"?"
,
0
,
"This is an error message for the log file"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Time"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-11-23 15:02:31 -5"
);
EXPECT_SCALAR
(
"?"
,
0
,
"User"
);
EXPECT_SCALAR
(
"?"
,
0
,
"ed"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Warning"
);
EXPECT_SCALAR
(
"?"
,
0
,
"A slightly different error message."
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Date"
);
EXPECT_SCALAR
(
"?"
,
0
,
"2001-11-23 15:03:17 -5"
);
EXPECT_SCALAR
(
"?"
,
0
,
"User"
);
EXPECT_SCALAR
(
"?"
,
0
,
"ed"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Fatal"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Unknown variable
\"
bar
\"
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Stack"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"file"
);
EXPECT_SCALAR
(
"?"
,
0
,
"TopClass.py"
);
EXPECT_SCALAR
(
"?"
,
0
,
"line"
);
EXPECT_SCALAR
(
"?"
,
0
,
"23"
);
EXPECT_SCALAR
(
"?"
,
0
,
"code"
);
EXPECT_SCALAR
(
"!"
,
0
,
"x = MoreObject(
\"
345
\\
n
\"
)
\n
"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"file"
);
EXPECT_SCALAR
(
"?"
,
0
,
"MoreClass.py"
);
EXPECT_SCALAR
(
"?"
,
0
,
"line"
);
EXPECT_SCALAR
(
"?"
,
0
,
"58"
);
EXPECT_SCALAR
(
"?"
,
0
,
"code"
);
EXPECT_SCALAR
(
"!"
,
0
,
"foo = bar"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// TODO: 5.1 - 5.2 BOM
// TODO: 5.1 - 5.2 BOM
...
@@ -153,37 +808,99 @@ namespace Test {
...
@@ -153,37 +808,99 @@ namespace Test {
// 5.3
// 5.3
TEST
BlockStructureIndicators
()
TEST
BlockStructureIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_3
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sequence"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"mapping"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sky"
);
EXPECT_SCALAR
(
"?"
,
0
,
"blue"
);
EXPECT_SCALAR
(
"?"
,
0
,
"sea"
);
EXPECT_SCALAR
(
"?"
,
0
,
"green"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 5.4
// 5.4
TEST
FlowStructureIndicators
()
TEST
FlowStructureIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_4
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sequence"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"mapping"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sky"
);
EXPECT_SCALAR
(
"?"
,
0
,
"blue"
);
EXPECT_SCALAR
(
"?"
,
0
,
"sea"
);
EXPECT_SCALAR
(
"?"
,
0
,
"green"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 5.5
// 5.5
TEST
CommentIndicator
()
TEST
CommentIndicator
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_5
);
DONE
();
}
}
// 5.6
// 5.6
TEST
NodePropertyIndicators
()
TEST
NodePropertyIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_6
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"anchored"
);
EXPECT_SCALAR
(
"!local"
,
1
,
"value"
);
EXPECT_SCALAR
(
"?"
,
0
,
"alias"
);
EXPECT_ALIAS
(
1
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 5.7
// 5.7
TEST
BlockScalarIndicators
()
TEST
BlockScalarIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_7
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"literal"
);
EXPECT_SCALAR
(
"!"
,
0
,
"some
\n
text
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"folded"
);
EXPECT_SCALAR
(
"!"
,
0
,
"some text
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 5.8
// 5.8
TEST
QuotedScalarIndicators
()
TEST
QuotedScalarIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_8
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"single"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text"
);
EXPECT_SCALAR
(
"?"
,
0
,
"double"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// TODO: 5.9 directive
// TODO: 5.9 directive
...
@@ -192,475 +909,1227 @@ namespace Test {
...
@@ -192,475 +909,1227 @@ namespace Test {
// 5.11
// 5.11
TEST
LineBreakCharacters
()
TEST
LineBreakCharacters
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_11
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"Line break (no glyph)
\n
"
"Line break (glyphed)
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 5.12
// 5.12
TEST
TabsAndSpaces
()
TEST
TabsAndSpaces
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_12
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"quoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Quoted
\t
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"block"
);
EXPECT_SCALAR
(
"!"
,
0
,
"void main() {
\n
"
"
\t
printf(
\"
Hello, world!
\\
n
\"
);
\n
"
"}"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 5.13
// 5.13
TEST
EscapedCharacters
()
TEST
EscapedCharacters
()
{
{
return
" not written yet"
;
HANDLE
(
ex5_13
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"Fun with
\x5C
\x22
\x07
\x08
\x1B
\x0C
\x0A
\x0D
\x09
\x0B
"
+
std
::
string
(
"
\x00
"
,
1
)
+
"
\x20
\xA0
\x85
\xe2\x80\xa8
\xe2\x80\xa9
A A A"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 5.14
// 5.14
TEST
InvalidEscapedCharacters
()
TEST
InvalidEscapedCharacters
()
{
{
return
" not written yet"
;
try
{
HANDLE
(
ex5_14
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
YAML_ASSERT
(
e
.
msg
==
std
::
string
(
YAML
::
ErrorMsg
::
INVALID_ESCAPE
)
+
"c"
);
return
true
;
}
return
" no exception caught"
;
}
}
// 6.1
// 6.1
TEST
IndentationSpaces
()
TEST
IndentationSpaces
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_1
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Not indented"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"By one space"
);
EXPECT_SCALAR
(
"!"
,
0
,
"By four
\n
spaces
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Flow style"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"By two"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Also by two"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Still by two"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.2
// 6.2
TEST
IndentationIndicators
()
TEST
IndentationIndicators
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_2
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"a"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"b"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"c"
);
EXPECT_SCALAR
(
"?"
,
0
,
"d"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.3
// 6.3
TEST
SeparationSpaces
()
TEST
SeparationSpaces
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_3
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"baz"
);
EXPECT_SCALAR
(
"?"
,
0
,
"baz"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.4
// 6.4
TEST
LinePrefixes
()
TEST
LinePrefixes
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_4
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"plain"
);
EXPECT_SCALAR
(
"?"
,
0
,
"text lines"
);
EXPECT_SCALAR
(
"?"
,
0
,
"quoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text lines"
);
EXPECT_SCALAR
(
"?"
,
0
,
"block"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text
\n
\t
lines
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.5
// 6.5
TEST
EmptyLines
()
TEST
EmptyLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_5
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"Folding"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Empty line
\n
as a line feed"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Chomping"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Clipped empty lines
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.6
// 6.6
TEST
LineFolding
()
TEST
LineFolding
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_6
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"trimmed
\n\n\n
as space"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.7
// 6.7
TEST
BlockFolding
()
TEST
BlockFolding
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_7
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"foo
\n\n\t
bar
\n\n
baz
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.8
// 6.8
TEST
FlowFolding
()
TEST
FlowFolding
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_8
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
" foo
\n
bar
\n
baz "
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.9
// 6.9
TEST
SeparatedComment
()
TEST
SeparatedComment
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_9
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.10
// 6.10
TEST
CommentLines
()
TEST
CommentLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_10
);
DONE
();
}
}
// 6.11
// 6.11
TEST
MultiLineComments
()
TEST
MultiLineComments
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_11
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.12
// 6.12
TEST
SeparationSpacesII
()
TEST
SeparationSpacesII
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_12
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"first"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sammy"
);
EXPECT_SCALAR
(
"?"
,
0
,
"last"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Sosa"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"hr"
);
EXPECT_SCALAR
(
"?"
,
0
,
"65"
);
EXPECT_SCALAR
(
"?"
,
0
,
"avg"
);
EXPECT_SCALAR
(
"?"
,
0
,
"0.278"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.13
// 6.13
TEST
ReservedDirectives
()
TEST
ReservedDirectives
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_13
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"foo"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.14
// 6.14
TEST
YAMLDirective
()
TEST
YAMLDirective
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_14
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"foo"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.15
// 6.15
TEST
InvalidRepeatedYAMLDirective
()
TEST
InvalidRepeatedYAMLDirective
()
{
{
return
" not written yet"
;
try
{
HANDLE
(
ex6_15
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
if
(
e
.
msg
==
YAML
::
ErrorMsg
::
REPEATED_YAML_DIRECTIVE
)
return
true
;
throw
;
}
return
" No exception was thrown"
;
}
}
// 6.16
// 6.16
TEST
TagDirective
()
TEST
TagDirective
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_16
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"foo"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.17
// 6.17
TEST
InvalidRepeatedTagDirective
()
TEST
InvalidRepeatedTagDirective
()
{
{
return
" not written yet"
;
try
{
HANDLE
(
ex6_17
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
if
(
e
.
msg
==
YAML
::
ErrorMsg
::
REPEATED_TAG_DIRECTIVE
)
return
true
;
throw
;
}
return
" No exception was thrown"
;
}
}
// 6.18
// 6.18
TEST
PrimaryTagHandle
()
TEST
PrimaryTagHandle
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_18
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!foo"
,
0
,
"bar"
);
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"tag:example.com,2000:app/foo"
,
0
,
"bar"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.19
// 6.19
TEST
SecondaryTagHandle
()
TEST
SecondaryTagHandle
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_19
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"tag:example.com,2000:app/int"
,
0
,
"1 - 3"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.20
// 6.20
TEST
TagHandles
()
TEST
TagHandles
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_20
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"tag:example.com,2000:app/foo"
,
0
,
"bar"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.21
// 6.21
TEST
LocalTagPrefix
()
TEST
LocalTagPrefix
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_21
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!my-light"
,
0
,
"fluorescent"
);
EXPECT_DOC_END
();
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!my-light"
,
0
,
"green"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 6.22
// 6.22
TEST
GlobalTagPrefix
()
TEST
GlobalTagPrefix
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_22
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"tag:example.com,2000:app/foo"
,
0
,
"bar"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.23
// 6.23
TEST
NodeProperties
()
TEST
NodeProperties
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_23
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
1
,
"foo"
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"bar"
);
EXPECT_SCALAR
(
"?"
,
2
,
"baz"
);
EXPECT_ALIAS
(
1
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.24
// 6.24
TEST
VerbatimTags
()
TEST
VerbatimTags
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_24
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"!bar"
,
0
,
"baz"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.25
// 6.25
TEST
InvalidVerbatimTags
()
TEST
InvalidVerbatimTags
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_25
);
return
" not implemented yet"
;
}
}
// 6.26
// 6.26
TEST
TagShorthands
()
TEST
TagShorthands
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_26
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!local"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"bar"
);
EXPECT_SCALAR
(
"tag:example.com,2000:app/tag%21"
,
0
,
"baz"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.27
// 6.27
TEST
InvalidTagShorthands
()
TEST
InvalidTagShorthands
()
{
{
return
" not written yet"
;
bool
threw
=
false
;
try
{
HANDLE
(
ex6_27a
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
threw
=
true
;
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
TAG_WITH_NO_SUFFIX
)
throw
;
}
if
(
!
threw
)
return
" No exception was thrown for a tag with no suffix"
;
HANDLE
(
ex6_27b
);
// TODO: should we reject this one (since !h! is not declared)?
return
" not implemented yet"
;
}
}
// 6.28
// 6.28
TEST
NonSpecificTags
()
TEST
NonSpecificTags
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_28
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"12"
);
EXPECT_SCALAR
(
"?"
,
0
,
"12"
);
EXPECT_SCALAR
(
"!"
,
0
,
"12"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 6.29
// 6.29
TEST
NodeAnchors
()
TEST
NodeAnchors
()
{
{
return
" not written yet"
;
HANDLE
(
ex6_29
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"First occurrence"
);
EXPECT_SCALAR
(
"?"
,
1
,
"Value"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Second occurrence"
);
EXPECT_ALIAS
(
1
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.1
// 7.1
TEST
AliasNodes
()
TEST
AliasNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_1
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"First occurrence"
);
EXPECT_SCALAR
(
"?"
,
1
,
"Foo"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Second occurrence"
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"?"
,
0
,
"Override anchor"
);
EXPECT_SCALAR
(
"?"
,
2
,
"Bar"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Reuse anchor"
);
EXPECT_ALIAS
(
2
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.2
// 7.2
TEST
EmptyNodes
()
TEST
EmptyNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_2
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
""
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
""
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.3
// 7.3
TEST
CompletelyEmptyNodes
()
TEST
CompletelyEmptyNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_3
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_NULL
(
0
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.4
// 7.4
TEST
DoubleQuotedImplicitKeys
()
TEST
DoubleQuotedImplicitKeys
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_4
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"implicit block key"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"implicit flow key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.5
// 7.5
TEST
DoubleQuotedLineBreaks
()
TEST
DoubleQuotedLineBreaks
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_5
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"folded to a space,
\n
to a line feed, or
\t
\t
non-content"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 7.6
// 7.6
TEST
DoubleQuotedLines
()
TEST
DoubleQuotedLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_6
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
" 1st non-empty
\n
2nd non-empty 3rd non-empty "
);
EXPECT_DOC_END
();
DONE
();
}
}
// 7.7
// 7.7
TEST
SingleQuotedCharacters
()
TEST
SingleQuotedCharacters
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_7
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"here's to
\"
quotes
\"
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 7.8
// 7.8
TEST
SingleQuotedImplicitKeys
()
TEST
SingleQuotedImplicitKeys
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_8
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"implicit block key"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"implicit flow key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.9
// 7.9
TEST
SingleQuotedLines
()
TEST
SingleQuotedLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_9
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
" 1st non-empty
\n
2nd non-empty 3rd non-empty "
);
EXPECT_DOC_END
();
DONE
();
}
}
// 7.10
// 7.10
TEST
PlainCharacters
()
TEST
PlainCharacters
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_10
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"::vector"
);
EXPECT_SCALAR
(
"!"
,
0
,
": - ()"
);
EXPECT_SCALAR
(
"?"
,
0
,
"Up, up, and away!"
);
EXPECT_SCALAR
(
"?"
,
0
,
"-123"
);
EXPECT_SCALAR
(
"?"
,
0
,
"http://example.com/foo#bar"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"::vector"
);
EXPECT_SCALAR
(
"!"
,
0
,
": - ()"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Up, up, and away!"
);
EXPECT_SCALAR
(
"?"
,
0
,
"-123"
);
EXPECT_SCALAR
(
"?"
,
0
,
"http://example.com/foo#bar"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.11
// 7.11
TEST
PlainImplicitKeys
()
TEST
PlainImplicitKeys
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_11
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"implicit block key"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"implicit flow key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.12
// 7.12
TEST
PlainLines
()
TEST
PlainLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_12
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"?"
,
0
,
"1st non-empty
\n
2nd non-empty 3rd non-empty"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 7.13
// 7.13
TEST
FlowSequence
()
TEST
FlowSequence
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_13
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"three"
);
EXPECT_SCALAR
(
"?"
,
0
,
"four"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.14
// 7.14
TEST
FlowSequenceEntries
()
TEST
FlowSequenceEntries
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_14
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"double quoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
"single quoted"
);
EXPECT_SCALAR
(
"?"
,
0
,
"plain text"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"nested"
);
EXPECT_SEQ_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"single"
);
EXPECT_SCALAR
(
"?"
,
0
,
"pair"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.15
// 7.15
TEST
FlowMappings
()
TEST
FlowMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_15
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SCALAR
(
"?"
,
0
,
"three"
);
EXPECT_SCALAR
(
"?"
,
0
,
"four"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"five"
);
EXPECT_SCALAR
(
"?"
,
0
,
"six"
);
EXPECT_SCALAR
(
"?"
,
0
,
"seven"
);
EXPECT_SCALAR
(
"?"
,
0
,
"eight"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.16
// 7.16
TEST
FlowMappingEntries
()
TEST
FlowMappingEntries
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_16
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"explicit"
);
EXPECT_SCALAR
(
"?"
,
0
,
"entry"
);
EXPECT_SCALAR
(
"?"
,
0
,
"implicit"
);
EXPECT_SCALAR
(
"?"
,
0
,
"entry"
);
EXPECT_NULL
(
0
);
EXPECT_NULL
(
0
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.17
// 7.17
TEST
FlowMappingSeparateValues
()
TEST
FlowMappingSeparateValues
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_17
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"unquoted"
);
EXPECT_SCALAR
(
"!"
,
0
,
"separate"
);
EXPECT_SCALAR
(
"?"
,
0
,
"http://foo.com"
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"omitted value"
);
EXPECT_NULL
(
0
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"omitted key"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.18
// 7.18
TEST
FlowMappingAdjacentValues
()
TEST
FlowMappingAdjacentValues
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_18
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"adjacent"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_SCALAR
(
"!"
,
0
,
"readable"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_SCALAR
(
"!"
,
0
,
"empty"
);
EXPECT_NULL
(
0
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.19
// 7.19
TEST
SinglePairFlowMappings
()
TEST
SinglePairFlowMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_19
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.20
// 7.20
TEST
SinglePairExplicitEntry
()
TEST
SinglePairExplicitEntry
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_20
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo bar"
);
EXPECT_SCALAR
(
"?"
,
0
,
"baz"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.21
// 7.21
TEST
SinglePairImplicitEntries
()
TEST
SinglePairImplicitEntries
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_21
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"YAML"
);
EXPECT_SCALAR
(
"?"
,
0
,
"separate"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"empty key entry"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"JSON"
);
EXPECT_SCALAR
(
"?"
,
0
,
"like"
);
EXPECT_MAP_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"adjacent"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.22
// 7.22
TEST
InvalidImplicitKeys
()
TEST
InvalidImplicitKeys
()
{
{
return
" not written yet"
;
try
{
HANDLE
(
ex7_22
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
==
YAML
::
ErrorMsg
::
END_OF_SEQ_FLOW
)
return
true
;
throw
;
}
return
" no exception thrown"
;
}
}
// 7.23
// 7.23
TEST
FlowContent
()
TEST
FlowContent
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_23
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"a"
);
EXPECT_SCALAR
(
"?"
,
0
,
"b"
);
EXPECT_SEQ_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"a"
);
EXPECT_SCALAR
(
"?"
,
0
,
"b"
);
EXPECT_MAP_END
();
EXPECT_SCALAR
(
"!"
,
0
,
"a"
);
EXPECT_SCALAR
(
"!"
,
0
,
"b"
);
EXPECT_SCALAR
(
"?"
,
0
,
"c"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 7.24
// 7.24
TEST
FlowNodes
()
TEST
FlowNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex7_24
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
"a"
);
EXPECT_SCALAR
(
"!"
,
0
,
"b"
);
EXPECT_SCALAR
(
"!"
,
1
,
"c"
);
EXPECT_ALIAS
(
1
);
EXPECT_SCALAR
(
"tag:yaml.org,2002:str"
,
0
,
""
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.1
// 8.1
TEST
BlockScalarHeader
()
TEST
BlockScalarHeader
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_1
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"literal
\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
" folded
\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
"keep
\n\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
" strip"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.2
// 8.2
TEST
BlockIndentationHeader
()
TEST
BlockIndentationHeader
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_2
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"detected
\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\n\n
# detected
\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
" explicit
\n
"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\t\n
detected
\n
"
);
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.3
// 8.3
TEST
InvalidBlockScalarIndentationIndicators
()
TEST
InvalidBlockScalarIndentationIndicators
()
{
{
return
" not written yet"
;
{
bool
threw
=
false
;
try
{
HANDLE
(
ex8_3a
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
threw
=
true
;
}
if
(
!
threw
)
return
" no exception thrown for less indented auto-detecting indentation for a literal block scalar"
;
}
{
bool
threw
=
false
;
try
{
HANDLE
(
ex8_3b
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
threw
=
true
;
}
if
(
!
threw
)
return
" no exception thrown for less indented auto-detecting indentation for a folded block scalar"
;
}
{
bool
threw
=
false
;
try
{
HANDLE
(
ex8_3c
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
threw
=
true
;
}
if
(
!
threw
)
return
" no exception thrown for less indented explicit indentation for a literal block scalar"
;
}
return
true
;
}
}
// 8.4
// 8.4
TEST
ChompingFinalLineBreak
()
TEST
ChompingFinalLineBreak
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_4
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"strip"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text"
);
EXPECT_SCALAR
(
"?"
,
0
,
"clip"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"keep"
);
EXPECT_SCALAR
(
"!"
,
0
,
"text
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.5
// 8.5
TEST
ChompingTrailingLines
()
TEST
ChompingTrailingLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_5
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"strip"
);
EXPECT_SCALAR
(
"!"
,
0
,
"# text"
);
EXPECT_SCALAR
(
"?"
,
0
,
"clip"
);
EXPECT_SCALAR
(
"!"
,
0
,
"# text
\n
"
);
EXPECT_SCALAR
(
"?"
,
0
,
"keep"
);
EXPECT_SCALAR
(
"!"
,
0
,
"# text
\n
"
);
// Note: I believe this is a bug in the YAML spec - it should be "# text\n\n"
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.6
// 8.6
TEST
EmptyScalarChomping
()
TEST
EmptyScalarChomping
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_6
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"strip"
);
EXPECT_SCALAR
(
"!"
,
0
,
""
);
EXPECT_SCALAR
(
"?"
,
0
,
"clip"
);
EXPECT_SCALAR
(
"!"
,
0
,
""
);
EXPECT_SCALAR
(
"?"
,
0
,
"keep"
);
EXPECT_SCALAR
(
"!"
,
0
,
"
\n
"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.7
// 8.7
TEST
LiteralScalar
()
TEST
LiteralScalar
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_7
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"literal
\n\t
text
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.8
// 8.8
TEST
LiteralContent
()
TEST
LiteralContent
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_8
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\n\n
literal
\n
\n\n
text
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.9
// 8.9
TEST
FoldedScalar
()
TEST
FoldedScalar
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_9
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"folded text
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.10
// 8.10
TEST
FoldedLines
()
TEST
FoldedLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_10
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.11
// 8.11
TEST
MoreIndentedLines
()
TEST
MoreIndentedLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_11
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.12
// 8.12
TEST
EmptySeparationLines
()
TEST
EmptySeparationLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_12
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.13
// 8.13
TEST
FinalEmptyLines
()
TEST
FinalEmptyLines
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_13
);
EXPECT_DOC_START
();
EXPECT_SCALAR
(
"!"
,
0
,
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
EXPECT_DOC_END
();
DONE
();
}
}
// 8.14
// 8.14
TEST
BlockSequence
()
TEST
BlockSequence
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_14
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"block sequence"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SCALAR
(
"?"
,
0
,
"three"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.15
// 8.15
TEST
BlockSequenceEntryTypes
()
TEST
BlockSequenceEntryTypes
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_15
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"block node
\n
"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SEQ_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.16
// 8.16
TEST
BlockMappings
()
TEST
BlockMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_16
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"block mapping"
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.17
// 8.17
TEST
ExplicitBlockMappingEntries
()
TEST
ExplicitBlockMappingEntries
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_17
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"explicit key"
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"block key
\n
"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"one"
);
EXPECT_SCALAR
(
"?"
,
0
,
"two"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.18
// 8.18
TEST
ImplicitBlockMappingEntries
()
TEST
ImplicitBlockMappingEntries
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_18
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"plain key"
);
EXPECT_SCALAR
(
"?"
,
0
,
"in-line value"
);
EXPECT_NULL
(
0
);
EXPECT_NULL
(
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"quoted key"
);
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"entry"
);
EXPECT_SEQ_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.19
// 8.19
TEST
CompactBlockMappings
()
TEST
CompactBlockMappings
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_19
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sun"
);
EXPECT_SCALAR
(
"?"
,
0
,
"yellow"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"earth"
);
EXPECT_SCALAR
(
"?"
,
0
,
"blue"
);
EXPECT_MAP_END
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"moon"
);
EXPECT_SCALAR
(
"?"
,
0
,
"white"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.20
// 8.20
TEST
BlockNodeTypes
()
TEST
BlockNodeTypes
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_20
);
EXPECT_DOC_START
();
EXPECT_SEQ_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"!"
,
0
,
"flow in block"
);
EXPECT_SCALAR
(
"!"
,
0
,
"Block scalar
\n
"
);
EXPECT_MAP_START
(
"tag:yaml.org,2002:map"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_SEQ_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.21
// 8.21
TEST
BlockScalarNodes
()
TEST
BlockScalarNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_21
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"literal"
);
EXPECT_SCALAR
(
"!"
,
0
,
"value"
);
// Note: I believe this is a bug in the YAML spec - it should be "value\n"
EXPECT_SCALAR
(
"?"
,
0
,
"folded"
);
EXPECT_SCALAR
(
"!foo"
,
0
,
"value"
);
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
// 8.22
// 8.22
TEST
BlockCollectionNodes
()
TEST
BlockCollectionNodes
()
{
{
return
" not written yet"
;
HANDLE
(
ex8_22
);
EXPECT_DOC_START
();
EXPECT_MAP_START
(
"?"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"sequence"
);
EXPECT_SEQ_START
(
"tag:yaml.org,2002:seq"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"entry"
);
EXPECT_SEQ_START
(
"tag:yaml.org,2002:seq"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"nested"
);
EXPECT_SEQ_END
();
EXPECT_SEQ_END
();
EXPECT_SCALAR
(
"?"
,
0
,
"mapping"
);
EXPECT_MAP_START
(
"tag:yaml.org,2002:map"
,
0
);
EXPECT_SCALAR
(
"?"
,
0
,
"foo"
);
EXPECT_SCALAR
(
"?"
,
0
,
"bar"
);
EXPECT_MAP_END
();
EXPECT_MAP_END
();
EXPECT_DOC_END
();
DONE
();
}
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment