Issue 371 in protobuf: GeneratedMessageTest.MergeFromSelf CHECK failed: (&from) != (this)

128 views
Skip to first unread message

prot...@googlecode.com

unread,
Jan 31, 2012, 4:33:10 AM1/31/12
to prot...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 371 by wto...@gmail.com: GeneratedMessageTest.MergeFromSelf CHECK
failed: (&from) != (this)
http://code.google.com/p/protobuf/issues/detail?id=371

What steps will reproduce the problem?

Windows 7 64-bit, VS2010
Protobuf is from protobuf-2.4.1.zip.
gtest is replaced with gtest-1.6.0, because native isn't compiled.

1. In project properties for all projects set General/CharacterSet to Use
Multi-Byte Character Set.
1. In project properties for all projects set C/C++/Code Generation/Runtime
library to Multi-threaded Debug DLL (/MDd).
2. Build in Debug mode
3. Run tests.exe from protobuf-2.4.1\vsprojects\Debug

What is the expected output? What do you see instead?

tests.exe in Debug mode reports 11 failures (in release mode in reports 4
failures):
[ FAILED ] 11 tests, listed below:
[ FAILED ] GeneratedMessageTest.MergeFromSelf
[ FAILED ] ExtensionSetTest.InvalidEnumDeath
[ FAILED ] GeneratedMessageReflectionTest.UsageErrors
[ FAILED ] MessageTest.SerializeFailsIfNotInitialized
[ FAILED ] MessageTest.CheckInitialized
[ FAILED ] Printer.Death
[ FAILED ] ReflectionOpsTest.MergeFromSelf
[ FAILED ] RepeatedField.Truncate
[ FAILED ] TokenizerTest.ParseInteger
[ FAILED ] TokenizerTest.ParseFloat
[ FAILED ] TokenizerTest.ParseString

Please use labels and text to provide additional information.

First of them:

libprotobuf FATAL
d:\protobuf\protobuf-2.4.1\vsprojects\google\protobuf\unittest.pb.cc:5538]
CHECK failed: (&from) != (this):
d:\protobuf\protobuf-2.4.1\src\google\protobuf\compiler\cpp\cpp_unittest.cc(500)::
Caught
std::exception-derived exception escaping the death test statement.
Exception message: CHECK failed: (&from) != (this):


prot...@googlecode.com

unread,
Feb 8, 2012, 5:53:34 AM2/8/12
to prot...@googlegroups.com
Updates:
Status: Accepted

Comment #1 on issue 371 by liuj...@google.com:

GeneratedMessageTest.MergeFromSelf CHECK failed: (&from) != (this)
http://code.google.com/p/protobuf/issues/detail?id=371

gtest-1.6.0 have known issues working with protobuf tests. Since 2.4.1,
protobuf changes the CHECK() in test to throw std::exception by default
instead of exit(1), which fails the gtest death check.

Workarounds:
1) use gtest-1.5 (the only version works with vs2010)
2) hack src\google\protobuf\stub\common.h by commenting out the #define
PROTOBUF_USE_EXCEPTION block.

The svn head actually already points to gtest-1.5, however this doesn't
work with MinGW32, as gtest-1.5 uses a non-portal nanosleep syscall, sigh..
In the next release, we will make the PROTOBUF_USE_EXCEPTION configurable,
and disable the exceptions in unittest, so vs2010 should work with gtest1.6

prot...@googlecode.com

unread,
Dec 5, 2012, 11:36:49 PM12/5/12
to prot...@googlegroups.com
Updates:
Status: Fixed
Labels: FixedIn-2.5.0

Comment #2 on issue 371 by liu...@google.com:
GeneratedMessageTest.MergeFromSelf CHECK failed: (&from) != (this)
http://code.google.com/p/protobuf/issues/detail?id=371

(No comment was entered for this change.)

Reply all
Reply to author
Forward
0 new messages