“void value not ignored as it ought to be.” – gcc said –


GTEST(Google test framwork)의 ASSERT_* 을 사용하다
“void value not ignored as it ought to be.” 에러를 만났다.

보니 함수의 리턴값이 void 가 아닌곳에서 void 리턴값을 갖는 것을 사용하면 에러가 나는것 같다.

예를들어,
int test()
{
ASSERT_TRUE( true);
}
이렇게 하면 컴파일에서 에러가 발생한다.

http://code.google.com/p/googletest/wiki/GoogleTestFAQ#My_compiler_complains_”void_value_not_ignored_as_it_ought_t

Q : My compiler complains “void value not ignored as it ought to be.” What does this mean? 

A : You’re probably using an ASSERT_*() in a function that doesn’t return void. ASSERT_*() can only be used in void functions.

ASSERT_TRUE() 를 EXPECT_TRUE() 로 바꾸니 에러가 나지 않았다.

ASSERT_*와 EXPECT_* 와 차이점 – 간단히 조건이 틀리면 함수를 종료하냐 계속하냐의 차이다.

Remember, when they fail, ASSERT_* yields a fatal failure and returns from the current function, while EXPECT_* yields a nonfatal failure, allowing the function to continue running. In either case, an assertion failure means its containing test fails.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중