xuyongli73 / googletest

Automatically exported from code.google.com/p/googletest
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

My assert is not caught and the test fails #479

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I just downloaded your product and hopefully my company Oceaneering will use 
this framework, however, I'm running into some issues and need your help. In 
our constructors we have user-defined MACROS for asserts such as:

AdapterPort::AdapterPort( Port* port )
{
    V_ASSERT( port != nullptr, "port must not be nullptr" );
}

So I'm trying to test this assert fires with your google test. I write:

EXPECT_DEATH(AdapterPort(nullptr), "Constructor does not accept a nullptr as a 
parameter");

But my user defined assert goes through and the test fails. My assert happens 
before the google test MACRO can even catch it. Am I using the correct macro? 
Or what's going on..?

Original issue reported on code.google.com by mker...@oceaneering.com on 24 Oct 2014 at 3:59

GoogleCodeExporter commented 9 years ago
What do you mean by "the test fails". Is it giving a gTest failure or it is 
crashing on your assert?
If the test gives a gTest failure, it might be because the expected message 
doesn't match the one from the V_ASSERT(). The failure message should mention 
this.
If V_ASSERT() is a debug check only, you should use EXPECT_DEBUG_DEATH() 
instead, that verifies the death only if NDEBUG is off.

Original comment by sbe...@google.com on 24 Oct 2014 at 4:32

GoogleCodeExporter commented 9 years ago
The test asserts on my assert in the code and I get the error attached.
Before this pops up I get a popup window that says:

<AssertError> c:\dev\viper\viperlibs\vipercomms\adapterport.cpp(11):
Viper::AdapterPort::AdapterPort - port must not be nullptr

And I still get that error even when I switched the macro to 
EXPECT_DEBUG_DEATH().

Original comment by mker...@oceaneering.com on 27 Oct 2014 at 12:37

Attachments: