You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to do:
class Foo { };
class Bar
{
private:
Foo* m_foo;
public:
Bar() : m_foo(0) { }
Foo* foo(void) { return m_foo; }
}
Bar baz;
EXPECT_EQ(0, baz.foo());
This didn't work until I did this:
EXPECT_EQ((void*)0, baz.foo());
Because we deal with enough pointers in our code, I've implemented
{ASSERT|EXPECT}_NULL and {ASSERT|EXPECT}_NOT_NULL. The attached diff
implements this entirely in <gtest/gtest.h>.
Original issue reported on code.google.com by halosta...@gmail.com on 7 Oct 2008 at 6:44
EXPECT_EQ(NULL, baz.foo()) is supposed to work. Which platform/compiler are
you using?
Thanks again for your contribution. The next time could you discuss the plan on
googletestframework@googlegroups.com first? The reason is to make sure you
don't end
up wasting your time.
In this particular case, we had a discussion before and decided not to implement
ASSERT_NULL and ASSERT_NOT_NULL, as there are already options that don't involve
introducing new macros:
ASSERT_EQ(NULL, foo);
ASSERT_TRUE(foo != NULL);
ASSERT_THAT(foo, NotNull());
etc.
The last one depends on our mocking framework, which will be open-sourced soon.
Thanks.
Original comment by shiq...@gmail.com on 8 Oct 2008 at 9:32
In the end, it wasn't a waste of my time -- it's something that we're going to
end up
using. We'll end up pulling it into an extra header that we use, instead of in
gtest/gtest.h, but ASSERT_NULL and ASSERT_NOT_NULL seemed better for us. Plus, I
wasn't trying to do NULL, but 0 (e.g., ASSERT_NE(0, baz.foo())) since the C++
spec
indicates that NULL as (void*)0 (the C definition) isn't correct.
I encountered this problem with VS2005.
Original comment by halosta...@gmail.com on 8 Oct 2008 at 9:57
Original issue reported on code.google.com by
halosta...@gmail.com
on 7 Oct 2008 at 6:44Attachments:
The text was updated successfully, but these errors were encountered: