From f206351d1469970230caa5f61eaa54797194bee1 Mon Sep 17 00:00:00 2001 From: temporal Date: Wed, 23 Jul 2008 01:19:07 +0000 Subject: Sync code with Google-internal branch. Changes: Protoc (parser) - Improved error message when an enum value's name conflicts with another symbol defined in the enum type's scope, e.g. if two enum types declared in the same scope have values with the same name. This is disallowed for compatibility with C++, but this wasn't clear from the error. C++ - Restored the set_foo(const char*) accessor for "bytes" type because some code inside Google depends on it. However, set_foo(const char*, int) is still there (and actually is changed to take const void*). - Fixed TokenizerTest when compiling with -DNDEBUG on Linux. - Other irrelevant tweaks. Java - Fixed UnknownFieldSet's parsing of varints larger than 32 bits. - Fixed TextFormat's parsing of "inf" and "nan". - Fixed TextFormat's parsing of comments. Python - Fixed text_format_test on Windows where floating-point exponents sometimes contain extra zeros. --- python/google/protobuf/internal/decoder_test.py | 2 +- python/google/protobuf/internal/encoder_test.py | 2 +- python/google/protobuf/internal/text_format_test.py | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) (limited to 'python/google') diff --git a/python/google/protobuf/internal/decoder_test.py b/python/google/protobuf/internal/decoder_test.py index e36a96fc..626816f6 100755 --- a/python/google/protobuf/internal/decoder_test.py +++ b/python/google/protobuf/internal/decoder_test.py @@ -24,9 +24,9 @@ from google.protobuf.internal import wire_format from google.protobuf.internal import encoder from google.protobuf.internal import decoder import logging -import mox from google.protobuf.internal import input_stream from google.protobuf import message +import mox class DecoderTest(unittest.TestCase): diff --git a/python/google/protobuf/internal/encoder_test.py b/python/google/protobuf/internal/encoder_test.py index 5d690da7..be4276b6 100755 --- a/python/google/protobuf/internal/encoder_test.py +++ b/python/google/protobuf/internal/encoder_test.py @@ -21,11 +21,11 @@ __author__ = 'robinson@google.com (Will Robinson)' import struct import logging import unittest -import mox from google.protobuf.internal import wire_format from google.protobuf.internal import encoder from google.protobuf.internal import output_stream from google.protobuf import message +import mox class EncoderTest(unittest.TestCase): diff --git a/python/google/protobuf/internal/text_format_test.py b/python/google/protobuf/internal/text_format_test.py index c2074db5..c8fc79dc 100755 --- a/python/google/protobuf/internal/text_format_test.py +++ b/python/google/protobuf/internal/text_format_test.py @@ -45,14 +45,16 @@ class TextFormatTest(unittest.TestCase): def testPrintAllFields(self): message = unittest_pb2.TestAllTypes() test_util.SetAllFields(message) - self.CompareToGoldenFile(text_format.MessageToString(message), - 'text_format_unittest_data.txt') + self.CompareToGoldenFile( + self.RemoveRedundantZeros(text_format.MessageToString(message)), + 'text_format_unittest_data.txt') def testPrintAllExtensions(self): message = unittest_pb2.TestAllExtensions() test_util.SetAllExtensions(message) - self.CompareToGoldenFile(text_format.MessageToString(message), - 'text_format_unittest_extensions_data.txt') + self.CompareToGoldenFile( + self.RemoveRedundantZeros(text_format.MessageToString(message)), + 'text_format_unittest_extensions_data.txt') def testPrintMessageSet(self): message = unittest_mset_pb2.TestMessageSetContainer() @@ -78,7 +80,8 @@ class TextFormatTest(unittest.TestCase): message.repeated_double.append(1.23e22); message.repeated_double.append(1.23e-18); message.repeated_string.append('\000\001\a\b\f\n\r\t\v\\\'\"'); - self.CompareToGoldenText(text_format.MessageToString(message), + self.CompareToGoldenText( + self.RemoveRedundantZeros(text_format.MessageToString(message)), 'repeated_int64: -9223372036854775808\n' 'repeated_uint64: 18446744073709551615\n' 'repeated_double: 123.456\n' @@ -92,6 +95,12 @@ class TextFormatTest(unittest.TestCase): message.c = 123 self.assertEqual('c: 123\n', str(message)) + def RemoveRedundantZeros(self, text): + # Some platforms print 1e+5 as 1e+005. This is fine, but we need to remove + # these zeros in order to match the golden file. + return text.replace('e+0','e+').replace('e+0','e+') \ + .replace('e-0','e-').replace('e-0','e-') + if __name__ == '__main__': unittest.main() -- cgit v1.2.3