[英]GoogleTest `expression result unused'
編輯:根據@πάνταῥεῖ反饋,我正在編輯問題。
使用googletest框架進行參數化測試。 對於以下行,我收到警告:
clang++ -isystem ../include -g -Wall -Wextra -pthread -std=c++03 -Wno-unknown-pragmas -Wno-missing-field-initializers -c ../samples/sample7_unittest.cc
../samples/sample7_unittest.cc:15:62: warning: expression result unused [-Wunused-value]
INSTANTIATE_TEST_CASE_P(SomeName, MyTest, ::testing::Values((1, 2)));
^
../include/gtest/gtest-param-test.h:1423:66: note: expanded from macro 'INSTANTIATE_TEST_CASE_P'
gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
^
1 warning generated.
下面是我的代碼,我使用sample7作為起點
#include "gtest/gtest.h"
using ::testing::TestWithParam;
class MyTest : public TestWithParam<int> {
public:
virtual void SetUp() { ch = GetParam(); }
int ch;
};
TEST_P(MyTest, foo) {
EXPECT_EQ(ch, 10);
}
INSTANTIATE_TEST_CASE_P(SomeName, MyTest, ::testing::Values((1, 2)));
下面是我的makefile:
CXX=clang++
GTEST_DIR = ..
USER_DIR = ../samples
CPPFLAGS += -isystem $(GTEST_DIR)/include
CXXFLAGS += -g -Wall -Wextra -pthread -std=c++03 -Wno-unknown-pragmas -Wno-missing-field-initializers
TESTS = sample7_unittest
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h $(GTEST_DIR)/include/gtest/internal/*.h
all : $(TESTS)
clean :
rm -f $(TESTS) gtest.a gtest_main.a *.o
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest-all.cc
gtest_main.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest_main.cc
gtest.a : gtest-all.o
$(AR) $(ARFLAGS) $@ $^
gtest_main.a : gtest-all.o gtest_main.o
$(AR) $(ARFLAGS) $@ $^
sample7_unittest.o : $(USER_DIR)/sample7_unittest.cc $(GTEST_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample7_unittest.cc
sample7_unittest : sample7_unittest.o gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
我正在使用LLVM 3.7.1編譯器。 問題是-std=c++03
標志,沒有該標志我沒有得到警告。 我可以采取什么措施消除它? 在回歸測試日志上看起來很糟糕。
注意:我還在這里添加了一個問題: https : //github.com/google/googletest/issues/755
在下面有一對多余的括號:
INSTANTIATE_TEST_CASE_P(SomeName, MyTest, ::testing::Values((1, 2)));
用。。。來代替:
INSTANTIATE_TEST_CASE_P(SomeName, MyTest, ::testing::Values(1, 2));
刪除警告。
我發現-std-c++03
的存在與否無關緊要(clang ++ 3.7,g ++ 5.2)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.