summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/jsontests.cpp
diff options
context:
space:
mode:
authorShaun Verch <shaun.verch@10gen.com>2013-12-29 10:34:27 -0800
committerShaun Verch <shaun.verch@10gen.com>2013-12-30 11:10:33 -0800
commit6486c53c2de908d90f098eb1295a07440a8cc6b0 (patch)
treeff4ffbd4dc9e1c39de28c4916541884026b4e2c7 /src/mongo/dbtests/jsontests.cpp
parent1b599c9f17c6dd10b320e5d642a03604164aec2d (diff)
downloadmongo-6486c53c2de908d90f098eb1295a07440a8cc6b0.tar.gz
SERVER-11868 Add tests for numbers that cannot be represented in JSON
Diffstat (limited to 'src/mongo/dbtests/jsontests.cpp')
-rw-r--r--src/mongo/dbtests/jsontests.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mongo/dbtests/jsontests.cpp b/src/mongo/dbtests/jsontests.cpp
index d15d2a32c91..22449b988ad 100644
--- a/src/mongo/dbtests/jsontests.cpp
+++ b/src/mongo/dbtests/jsontests.cpp
@@ -180,6 +180,33 @@ namespace JsonTests {
}
};
+ class NumberDoubleNaN {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", std::numeric_limits<double>::quiet_NaN());
+ ASSERT_EQUALS("{ \"a\" : NaN }", b.done().jsonString(Strict));
+ }
+ };
+
+ class NumberDoubleInfinity {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", std::numeric_limits<double>::infinity());
+ ASSERT_EQUALS("{ \"a\" : Infinity }", b.done().jsonString(Strict));
+ }
+ };
+
+ class NumberDoubleNegativeInfinity {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", -std::numeric_limits<double>::infinity());
+ ASSERT_EQUALS("{ \"a\" : -Infinity }", b.done().jsonString(Strict));
+ }
+ };
+
class SingleBoolMember {
public:
void run() {
@@ -2592,6 +2619,9 @@ namespace JsonTests {
add< JsonStringTests::NumberLongStrict >();
add< JsonStringTests::NumberLongStrictLarge >();
add< JsonStringTests::NumberLongStrictNegative >();
+ add< JsonStringTests::NumberDoubleNaN >();
+ add< JsonStringTests::NumberDoubleInfinity >();
+ add< JsonStringTests::NumberDoubleNegativeInfinity >();
add< JsonStringTests::SingleBoolMember >();
add< JsonStringTests::SingleNullMember >();
add< JsonStringTests::SingleUndefinedMember >();