Merge pull request #909 from miloyip/issue905_PrettyWriterWriteFlags
Fix #905 unable to set writeFlags for PrettyWriter
This commit is contained in:
commit
5d9d0f78b5
@ -47,7 +47,7 @@ enum PrettyFormatOptions {
|
|||||||
template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
|
template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
|
||||||
class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
|
class PrettyWriter : public Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> {
|
||||||
public:
|
public:
|
||||||
typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator> Base;
|
typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> Base;
|
||||||
typedef typename Base::Ch Ch;
|
typedef typename Base::Ch Ch;
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
|
@ -258,6 +258,49 @@ TEST(PrettyWriter, InvalidEventSequence) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(PrettyWriter, NaN) {
|
||||||
|
double nan = std::numeric_limits<double>::quiet_NaN();
|
||||||
|
|
||||||
|
EXPECT_TRUE(internal::Double(nan).IsNan());
|
||||||
|
StringBuffer buffer;
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer> writer(buffer);
|
||||||
|
EXPECT_FALSE(writer.Double(nan));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfFlag> writer(buffer);
|
||||||
|
EXPECT_TRUE(writer.Double(nan));
|
||||||
|
EXPECT_STREQ("NaN", buffer.GetString());
|
||||||
|
}
|
||||||
|
GenericStringBuffer<UTF16<> > buffer2;
|
||||||
|
PrettyWriter<GenericStringBuffer<UTF16<> > > writer2(buffer2);
|
||||||
|
EXPECT_FALSE(writer2.Double(nan));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(PrettyWriter, Inf) {
|
||||||
|
double inf = std::numeric_limits<double>::infinity();
|
||||||
|
|
||||||
|
EXPECT_TRUE(internal::Double(inf).IsInf());
|
||||||
|
StringBuffer buffer;
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer> writer(buffer);
|
||||||
|
EXPECT_FALSE(writer.Double(inf));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer> writer(buffer);
|
||||||
|
EXPECT_FALSE(writer.Double(-inf));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfFlag> writer(buffer);
|
||||||
|
EXPECT_TRUE(writer.Double(inf));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PrettyWriter<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfFlag> writer(buffer);
|
||||||
|
EXPECT_TRUE(writer.Double(-inf));
|
||||||
|
}
|
||||||
|
EXPECT_STREQ("Infinity-Infinity", buffer.GetString());
|
||||||
|
}
|
||||||
|
|
||||||
TEST(PrettyWriter, Issue_889) {
|
TEST(PrettyWriter, Issue_889) {
|
||||||
char buf[100] = "Hello";
|
char buf[100] = "Hello";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user