Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
json
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
json
Commits
e571c67c
Unverified
Commit
e571c67c
authored
5 years ago
by
Niels Lohmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix implicit conversion warning when opening binary file
parent
fb22233f
develop
bon8
coverity_scan
feature/optional
gcc_warning_flags
icpc
issue2615
issue2932
issue3232_use_catch
master
release/3.10.2
release/3.10.3
release/3.10.4
release/3.10.5
string_view
string_view2
update_doctest
v3.10.5
v3.10.4
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.9.1
v3.9.0
No related merge requests found
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
52 additions
and
70 deletions
+52
-70
Makefile
Makefile
+1
-1
test/CMakeLists.txt
test/CMakeLists.txt
+1
-1
test/src/unit-bson.cpp
test/src/unit-bson.cpp
+4
-12
test/src/unit-cbor.cpp
test/src/unit-cbor.cpp
+8
-25
test/src/unit-msgpack.cpp
test/src/unit-msgpack.cpp
+5
-15
test/src/unit-ubjson.cpp
test/src/unit-ubjson.cpp
+8
-16
test/utils/test_utils.hpp
test/utils/test_utils.hpp
+25
-0
No files found.
Makefile
View file @
e571c67c
...
...
@@ -525,7 +525,7 @@ pretty:
--preserve-date
\
--suffix
=
none
\
--formatted
\
$(SRCS)
$(AMALGAMATED_FILE)
test
/src/
*
.cpp benchmarks/src/benchmarks.cpp doc/examples/
*
.cpp
$(SRCS)
$(AMALGAMATED_FILE)
test
/src/
*
.cpp
test
/utils/
*
.hpp
benchmarks/src/benchmarks.cpp doc/examples/
*
.cpp
# create single header file
amalgamate
:
$(AMALGAMATED_FILE)
...
...
This diff is collapsed.
Click to expand it.
test/CMakeLists.txt
View file @
e571c67c
...
...
@@ -151,7 +151,7 @@ foreach(file ${files})
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wno-deprecated;-Wno-float-equal>
$<$<CXX_COMPILER_ID:GNU>:-Wno-deprecated-declarations>
)
target_include_directories
(
${
testcase
}
PRIVATE
${
CMAKE_BINARY_DIR
}
/include thirdparty/doctest thirdparty/fifo_map
)
target_include_directories
(
${
testcase
}
PRIVATE
${
CMAKE_
CURRENT_SOURCE_DIR
}
/utils
${
CMAKE_
BINARY_DIR
}
/include thirdparty/doctest thirdparty/fifo_map
)
target_link_libraries
(
${
testcase
}
PRIVATE
${
NLOHMANN_JSON_TARGET_NAME
}
)
if
(
JSON_Coverage
)
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-bson.cpp
View file @
e571c67c
...
...
@@ -35,6 +35,7 @@ using nlohmann::json;
#include <fstream>
#include <sstream>
#include <test_data.hpp>
#include <test_utils.hpp>
TEST_CASE
(
"BSON"
)
{
...
...
@@ -1263,10 +1264,7 @@ TEST_CASE("BSON roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse BSON file
std
::
ifstream
f_bson
(
filename
+
".bson"
,
std
::
ios
::
binary
);
std
::
vector
<
std
::
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_bson
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".bson"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_bson
(
packed
));
...
...
@@ -1296,10 +1294,7 @@ TEST_CASE("BSON roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse BSON file
std
::
ifstream
f_bson
(
filename
+
".bson"
,
std
::
ios
::
binary
);
std
::
vector
<
std
::
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_bson
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".bson"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_bson
({
packed
.
data
(),
packed
.
size
()}));
...
...
@@ -1314,10 +1309,7 @@ TEST_CASE("BSON roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse BSON file
std
::
ifstream
f_bson
(
filename
+
".bson"
,
std
::
ios
::
binary
);
std
::
vector
<
std
::
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_bson
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".bson"
);
{
INFO_WITH_TEMP
(
filename
+
": output adapters: std::vector<std::uint8_t>"
);
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-cbor.cpp
View file @
e571c67c
...
...
@@ -39,6 +39,7 @@ using nlohmann::json;
#include <iostream>
#include <set>
#include <test_data.hpp>
#include <test_utils.hpp>
namespace
{
...
...
@@ -1920,9 +1921,7 @@ TEST_CASE("single CBOR roundtrip")
json
j1
=
json
::
parse
(
f_json
);
// parse CBOR file
std
::
ifstream
f_cbor
(
filename
+
".cbor"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
((
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".cbor"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_cbor
(
packed
));
...
...
@@ -1994,10 +1993,7 @@ TEST_CASE("CBOR regressions")
try
{
// parse CBOR file
std
::
ifstream
f_cbor
(
filename
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
vec1
(
(
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
vec1
=
utils
::
read_binary_file
(
filename
);
json
j1
=
json
::
from_cbor
(
vec1
);
try
...
...
@@ -2204,10 +2200,7 @@ TEST_CASE("CBOR roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse CBOR file
std
::
ifstream
f_cbor
(
filename
+
".cbor"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".cbor"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_cbor
(
packed
));
...
...
@@ -2237,10 +2230,7 @@ TEST_CASE("CBOR roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse CBOR file
std
::
ifstream
f_cbor
(
filename
+
".cbor"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".cbor"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_cbor
({
packed
.
data
(),
packed
.
size
()}));
...
...
@@ -2255,10 +2245,7 @@ TEST_CASE("CBOR roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse CBOR file
std
::
ifstream
f_cbor
(
filename
+
".cbor"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".cbor"
);
if
(
!
exclude_packed
.
count
(
filename
))
{
...
...
@@ -2493,15 +2480,11 @@ TEST_CASE("examples from RFC 7049 Appendix A")
SECTION
(
"byte arrays"
)
{
std
::
ifstream
f_cbor
(
TEST_DATA_DIRECTORY
"/binary_data/cbor_binary.cbor"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
((
std
::
istreambuf_iterator
<
char
>
(
f_cbor
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
TEST_DATA_DIRECTORY
"/binary_data/cbor_binary.cbor"
);
json
j
;
CHECK_NOTHROW
(
j
=
json
::
from_cbor
(
packed
));
std
::
ifstream
f_bin
(
TEST_DATA_DIRECTORY
"/binary_data/cbor_binary.out"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
expected
((
std
::
istreambuf_iterator
<
char
>
(
f_bin
)),
std
::
istreambuf_iterator
<
char
>
());
auto
expected
=
utils
::
read_binary_file
(
TEST_DATA_DIRECTORY
"/binary_data/cbor_binary.out"
);
CHECK
(
j
==
json
::
binary
(
expected
));
CHECK
(
json
::
to_cbor
(
json
::
binary
(
std
::
vector
<
uint8_t
>
{},
0x42
))
==
std
::
vector
<
uint8_t
>
{
0xd8
,
0x42
,
0x40
});
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-msgpack.cpp
View file @
e571c67c
...
...
@@ -37,6 +37,7 @@ using nlohmann::json;
#include <iomanip>
#include <set>
#include <test_data.hpp>
#include <test_utils.hpp>
namespace
{
...
...
@@ -1609,9 +1610,7 @@ TEST_CASE("single MessagePack roundtrip")
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_msgpack
(
filename
+
".msgpack"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
((
std
::
istreambuf_iterator
<
char
>
(
f_msgpack
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".msgpack"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_msgpack
(
packed
));
...
...
@@ -1824,10 +1823,7 @@ TEST_CASE("MessagePack roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_msgpack
(
filename
+
".msgpack"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_msgpack
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".msgpack"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_msgpack
(
packed
));
...
...
@@ -1857,10 +1853,7 @@ TEST_CASE("MessagePack roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_msgpack
(
filename
+
".msgpack"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_msgpack
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".msgpack"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_msgpack
({
packed
.
data
(),
packed
.
size
()}));
...
...
@@ -1875,10 +1868,7 @@ TEST_CASE("MessagePack roundtrips" * doctest::skip())
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_msgpack
(
filename
+
".msgpack"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_msgpack
)),
std
::
istreambuf_iterator
<
char
>
());
auto
packed
=
utils
::
read_binary_file
(
filename
+
".msgpack"
);
if
(
!
exclude_packed
.
count
(
filename
))
{
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-ubjson.cpp
View file @
e571c67c
...
...
@@ -35,6 +35,7 @@ using nlohmann::json;
#include <fstream>
#include <set>
#include <test_data.hpp>
#include <test_utils.hpp>
namespace
{
...
...
@@ -2457,11 +2458,8 @@ TEST_CASE("UBJSON roundtrips" * doctest::skip())
std
::
ifstream
f_json
(
filename
);
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_ubjson
(
filename
+
".ubjson"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_ubjson
)),
std
::
istreambuf_iterator
<
char
>
());
// parse UBJSON file
auto
packed
=
utils
::
read_binary_file
(
filename
+
".ubjson"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_ubjson
(
packed
));
...
...
@@ -2475,7 +2473,7 @@ TEST_CASE("UBJSON roundtrips" * doctest::skip())
std
::
ifstream
f_json
(
filename
);
json
j1
=
json
::
parse
(
f_json
);
// parse
MessagePack
file
// parse
UBJSON
file
std
::
ifstream
f_ubjson
(
filename
+
".ubjson"
,
std
::
ios
::
binary
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_ubjson
(
f_ubjson
));
...
...
@@ -2490,11 +2488,8 @@ TEST_CASE("UBJSON roundtrips" * doctest::skip())
std
::
ifstream
f_json
(
filename
);
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_ubjson
(
filename
+
".ubjson"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_ubjson
)),
std
::
istreambuf_iterator
<
char
>
());
// parse UBJSON file
auto
packed
=
utils
::
read_binary_file
(
filename
+
".ubjson"
);
json
j2
;
CHECK_NOTHROW
(
j2
=
json
::
from_ubjson
({
packed
.
data
(),
packed
.
size
()}));
...
...
@@ -2508,11 +2503,8 @@ TEST_CASE("UBJSON roundtrips" * doctest::skip())
std
::
ifstream
f_json
(
filename
);
json
j1
=
json
::
parse
(
f_json
);
// parse MessagePack file
std
::
ifstream
f_ubjson
(
filename
+
".ubjson"
,
std
::
ios
::
binary
);
std
::
vector
<
uint8_t
>
packed
(
(
std
::
istreambuf_iterator
<
char
>
(
f_ubjson
)),
std
::
istreambuf_iterator
<
char
>
());
// parse UBJSON file
auto
packed
=
utils
::
read_binary_file
(
filename
+
".ubjson"
);
{
INFO_WITH_TEMP
(
filename
+
": output adapters: std::vector<uint8_t>"
);
...
...
This diff is collapsed.
Click to expand it.
test/utils/test_utils.hpp
0 → 100644
View file @
e571c67c
#pragma once
#include <cstdint> // uint8_t
#include <fstream> // ifstream, istreambuf_iterator, ios
#include <vector> // vector
namespace
utils
{
inline
std
::
vector
<
std
::
uint8_t
>
read_binary_file
(
const
std
::
string
&
filename
)
{
std
::
ifstream
file
(
filename
,
std
::
ios
::
binary
);
file
.
unsetf
(
std
::
ios
::
skipws
);
file
.
seekg
(
0
,
std
::
ios
::
end
);
const
auto
size
=
file
.
tellg
();
file
.
seekg
(
0
,
std
::
ios
::
beg
);
std
::
vector
<
std
::
uint8_t
>
byte_vector
;
byte_vector
.
reserve
(
static_cast
<
std
::
size_t
>
(
size
));
byte_vector
.
insert
(
byte_vector
.
begin
(),
std
::
istream_iterator
<
std
::
uint8_t
>
(
file
),
std
::
istream_iterator
<
std
::
uint8_t
>
());
return
byte_vector
;
}
}
// namespace utils
This diff is collapsed.
Click to expand it.
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