Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
yaml-cpp
Commits
0fb59c18
Commit
0fb59c18
authored
May 22, 2012
by
Jesse Beder
Browse files
Split test struct and handler macros out for the emitter/spec tests
parent
115101d2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
63 additions
and
14 deletions
+63
-14
test/create-emitter-tests.py
test/create-emitter-tests.py
+10
-2
test/emittertests.cpp
test/emittertests.cpp
+33
-0
test/handlermacros.h
test/handlermacros.h
+1
-2
test/spectests.h
test/spectests.h
+1
-10
test/teststruct.h
test/teststruct.h
+18
-0
No files found.
test/create-emitter-tests.py
View file @
0fb59c18
...
@@ -61,8 +61,10 @@ def gen_tests():
...
@@ -61,8 +61,10 @@ def gen_tests():
def
create_emitter_tests
(
out
):
def
create_emitter_tests
(
out
):
out
.
write
(
'namespace %s {
\n
'
%
NS
)
out
.
write
(
'namespace %s {
\n
'
%
NS
)
for
test
in
gen_tests
():
tests
=
list
(
gen_tests
())
out
.
write
(
'inline TEST %s(YAML::Emitter& out)
\n
'
%
test
[
'name'
])
for
test
in
tests
:
out
.
write
(
'TEST %s(YAML::Emitter& out)
\n
'
%
test
[
'name'
])
out
.
write
(
'{
\n
'
)
out
.
write
(
'{
\n
'
)
for
event
in
test
[
'events'
]:
for
event
in
test
[
'events'
]:
emit
=
event
[
'emit'
]
emit
=
event
[
'emit'
]
...
@@ -82,5 +84,11 @@ def create_emitter_tests(out):
...
@@ -82,5 +84,11 @@ def create_emitter_tests(out):
out
.
write
(
'}
\n
'
)
out
.
write
(
'}
\n
'
)
out
.
write
(
'void RunGenEmitterTests(int& passed, int& total)
\n
'
)
out
.
write
(
'{
\n
'
)
for
test
in
tests
:
out
.
write
(
' RunGenEmitterTest(&Emitter::%s, %s, passed, total);
\n
'
%
(
test
[
'name'
],
encode
(
test
[
'name'
])))
out
.
write
(
'}
\n
'
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
create_emitter_tests
(
sys
.
stdout
)
create_emitter_tests
(
sys
.
stdout
)
test/emittertests.cpp
View file @
0fb59c18
#include "tests.h"
#include "tests.h"
#include "handlermacros.h"
#include "yaml-cpp/yaml.h"
#include "yaml-cpp/yaml.h"
#include "yaml-cpp/eventhandler.h"
#include "yaml-cpp/eventhandler.h"
#include <iostream>
#include <iostream>
...
@@ -1051,7 +1052,37 @@ namespace Test
...
@@ -1051,7 +1052,37 @@ namespace Test
}
}
total
++
;
total
++
;
}
}
void
RunGenEmitterTest
(
TEST
(
*
test
)(
YAML
::
Emitter
&
),
const
std
::
string
&
name
,
int
&
passed
,
int
&
total
)
{
YAML
::
Emitter
out
;
TEST
ret
;
try
{
ret
=
test
(
out
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
ret
.
ok
=
false
;
ret
.
error
=
std
::
string
(
" Exception caught: "
)
+
e
.
what
();
}
if
(
!
out
.
good
())
{
ret
.
ok
=
false
;
ret
.
error
=
out
.
GetLastError
();
}
if
(
!
ret
.
ok
)
{
std
::
cout
<<
"Generated emitter test failed: "
<<
name
<<
"
\n
"
;
std
::
cout
<<
"Output:
\n
"
;
std
::
cout
<<
out
.
c_str
()
<<
"<<<
\n
"
;
std
::
cout
<<
ret
.
error
<<
"
\n
"
;
}
if
(
ret
.
ok
)
passed
++
;
total
++
;
}
}
}
#include "genemittertests.h"
bool
RunEmitterTests
()
bool
RunEmitterTests
()
{
{
...
@@ -1142,6 +1173,8 @@ namespace Test
...
@@ -1142,6 +1173,8 @@ namespace Test
RunEmitterErrorTest
(
&
Emitter
::
InvalidAnchor
,
"invalid anchor"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
InvalidAnchor
,
"invalid anchor"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
InvalidAlias
,
"invalid alias"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
InvalidAlias
,
"invalid alias"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
BadLocalTag
,
"bad local tag"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
BadLocalTag
,
"bad local tag"
,
passed
,
total
);
RunGenEmitterTests
(
passed
,
total
);
std
::
cout
<<
"Emitter tests: "
<<
passed
<<
"/"
<<
total
<<
" passed
\n
"
;
std
::
cout
<<
"Emitter tests: "
<<
passed
<<
"/"
<<
total
<<
" passed
\n
"
;
return
passed
==
total
;
return
passed
==
total
;
...
...
test/handlermacros.h
View file @
0fb59c18
#include "teststruct.h"
#pragma once
#pragma once
#include "yaml-cpp/yaml.h"
#include "yaml-cpp/yaml.h"
...
@@ -5,8 +6,6 @@
...
@@ -5,8 +6,6 @@
#include <string>
#include <string>
#include <cassert>
#include <cassert>
#define YAML_ASSERT(cond) do { if(!(cond)) return " Assert failed: " #cond; } while(false)
namespace
Test
{
namespace
Test
{
std
::
string
Quote
(
const
std
::
string
&
text
)
{
std
::
string
Quote
(
const
std
::
string
&
text
)
{
YAML
::
Emitter
out
;
YAML
::
Emitter
out
;
...
...
test/spectests.h
View file @
0fb59c18
...
@@ -5,18 +5,9 @@
...
@@ -5,18 +5,9 @@
#pragma once
#pragma once
#endif
#endif
#include
<string>
#include
"teststruct.h"
namespace
Test
{
namespace
Test
{
struct
TEST
{
TEST
()
:
ok
(
false
)
{}
TEST
(
bool
ok_
)
:
ok
(
ok_
)
{}
TEST
(
const
char
*
error_
)
:
ok
(
false
),
error
(
error_
)
{}
bool
ok
;
std
::
string
error
;
};
namespace
Spec
{
namespace
Spec
{
// 2.1
// 2.1
TEST
SeqScalars
();
TEST
SeqScalars
();
...
...
test/teststruct.h
0 → 100644
View file @
0fb59c18
#pragma once
#include <string>
#define YAML_ASSERT(cond) do { if(!(cond)) return " Assert failed: " #cond; } while(false)
namespace
Test
{
struct
TEST
{
TEST
()
:
ok
(
false
)
{}
TEST
(
bool
ok_
)
:
ok
(
ok_
)
{}
TEST
(
const
char
*
error_
)
:
ok
(
false
),
error
(
error_
)
{}
bool
ok
;
std
::
string
error
;
};
}
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