diff --git a/cmake/coveralls.cmake b/cmake/coveralls.cmake index f7da3560f75f6203236b75b5cf96dc24492f9f71..598754bc9efaa221dee072ee3efa44a8d7609e73 100644 --- a/cmake/coveralls.cmake +++ b/cmake/coveralls.cmake @@ -63,7 +63,10 @@ endfunction() if(WITH_COVERAGE) if (WITH_INCREMENTAL_COVERAGE) - if (NOT ("$ENV{PADDLE_GIT_DIFF_H_FILE}" STREQUAL "")) + # if *.h changed, generate coverage report totaly. + # if pybind.cc changed, generate coverage report totaly. + # Because if pybind.cc add '-g -O0 -fprofile-arcs -ftest-coverage' only, some testcase will fail. + if ( (NOT ("$ENV{PADDLE_GIT_DIFF_H_FILE}" STREQUAL "")) OR ("$ENV{PADDLE_GIT_DIFF_CC_FILE}" MATCHES "pybind.cc") ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") endif() diff --git a/cmake/generic.cmake b/cmake/generic.cmake index 391f60ab56f5899f60f639445219c9be9822711a..363803bb6bafa4397e9d358817c797029bf17297 100644 --- a/cmake/generic.cmake +++ b/cmake/generic.cmake @@ -268,7 +268,8 @@ endfunction(merge_static_libs) function(check_coverage_opt TARGET_NAME SRCS) if(WITH_COVERAGE AND WITH_INCREMENTAL_COVERAGE) - if ("$ENV{PADDLE_GIT_DIFF_H_FILE}" STREQUAL "") + # if pybind.cc add '-g -O0 -fprofile-arcs -ftest-coverage' only, some testcase will fail. + if ("$ENV{PADDLE_GIT_DIFF_H_FILE}" STREQUAL "" AND (NOT ("$ENV{PADDLE_GIT_DIFF_CC_FILE}" MATCHES "pybind.cc"))) if (NOT ("$ENV{PADDLE_GIT_DIFF_CC_FILE}" STREQUAL "")) string(REPLACE "," ";" CC_FILE_LIST $ENV{PADDLE_GIT_DIFF_CC_FILE}) set(use_coverage_opt FALSE) diff --git a/paddle/fluid/pybind/pybind.cc b/paddle/fluid/pybind/pybind.cc index b66dd17bbcd2bc91b5131df366033558106dd60f..9dcd2f4e5cd81fc85b71bf94aba3cb3857ef9518 100644 --- a/paddle/fluid/pybind/pybind.cc +++ b/paddle/fluid/pybind/pybind.cc @@ -117,6 +117,7 @@ DECLARE_bool(use_mkldnn); // disable auto conversion to list in Python PYBIND11_MAKE_OPAQUE(paddle::framework::LoDTensorArray); + PYBIND11_MAKE_OPAQUE(paddle::framework::FetchUnmergedList); PYBIND11_MAKE_OPAQUE(paddle::framework::FetchList); PYBIND11_MAKE_OPAQUE(paddle::framework::FetchType);