|
|
|
@ -46,6 +46,7 @@ |
|
|
|
|
#include <google/protobuf/io/tokenizer.h> |
|
|
|
|
#include <google/protobuf/io/zero_copy_stream_impl.h> |
|
|
|
|
#include <google/protobuf/stubs/strutil.h> |
|
|
|
|
#include <google/protobuf/stubs/mathlimits.h> |
|
|
|
|
#include <google/protobuf/stubs/substitute.h> |
|
|
|
|
#include <google/protobuf/testing/googletest.h> |
|
|
|
|
#include <gtest/gtest.h> |
|
|
|
@ -57,11 +58,6 @@ namespace protobuf { |
|
|
|
|
// Can't use an anonymous namespace here due to brokenness of Tru64 compiler.
|
|
|
|
|
namespace text_format_unittest { |
|
|
|
|
|
|
|
|
|
inline bool IsNaN(double value) { |
|
|
|
|
// NaN is never equal to anything, even itself.
|
|
|
|
|
return value != value; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// A basic string with different escapable characters for testing.
|
|
|
|
|
const string kEscapeTestString = |
|
|
|
|
"\"A string with ' characters \n and \r newlines and \t tabs and \001 " |
|
|
|
@ -898,8 +894,8 @@ TEST_F(TextFormatTest, ParseExotic) { |
|
|
|
|
EXPECT_EQ(message.repeated_double(8), numeric_limits<double>::infinity()); |
|
|
|
|
EXPECT_EQ(message.repeated_double(9), -numeric_limits<double>::infinity()); |
|
|
|
|
EXPECT_EQ(message.repeated_double(10), -numeric_limits<double>::infinity()); |
|
|
|
|
EXPECT_TRUE(IsNaN(message.repeated_double(11))); |
|
|
|
|
EXPECT_TRUE(IsNaN(message.repeated_double(12))); |
|
|
|
|
EXPECT_TRUE(MathLimits<double>::IsNaN(message.repeated_double(11))); |
|
|
|
|
EXPECT_TRUE(MathLimits<double>::IsNaN(message.repeated_double(12))); |
|
|
|
|
|
|
|
|
|
// Note: Since these string literals have \0's in them, we must explicitly
|
|
|
|
|
// pass their sizes to string's constructor.
|
|
|
|
|