Skip to content

Conversation

@arw2019
Copy link
Contributor

@arw2019 arw2019 commented Nov 26, 2020

As per a TODO left in ARROW-3769 / #3721 we can now use the GTEST_SKIP macro in parquet/encoding-test.cpp. GTEST_SKIP was added in gtest 1.10.0 so this involves bumping our minimal gtest version from 1.8.1

@github-actions
Copy link

@arw2019 arw2019 changed the title ARROW-10746: [C++] Bump gtest version + use GTEST_SKIP in parquet encoding tests ARROW-10746: [C++] Bump gtest version + use GTEST_SKIP in tests Nov 26, 2020
@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from ecfef76 to 19c70e4 Compare November 26, 2020 20:57
@arw2019 arw2019 marked this pull request as draft November 26, 2020 21:22
@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from 0591595 to 2e846d3 Compare November 27, 2020 00:40
@arw2019 arw2019 closed this Nov 27, 2020
@arw2019 arw2019 reopened this Nov 27, 2020
@arw2019 arw2019 marked this pull request as ready for review November 27, 2020 01:42
@arw2019
Copy link
Contributor Author

arw2019 commented Nov 27, 2020

I think the code changes here are ok. However, at least some of the build errors look related (and persisted across two CI runs) so that's left to figure out

@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch 2 times, most recently from 1ebe491 to f073eab Compare November 29, 2020 22:08
@pitrou
Copy link
Member

pitrou commented Nov 30, 2020

Well, at least the ASAN CI job failure seems related:

clang: error: no such file or directory: 'debug//libgtestd.so'

cc @kou @xhochy

@kou
Copy link
Member

kou commented Dec 1, 2020

It seems that the latest GoogleTest doesn't use the default CMAKE_XXX_OUTPUT_DIRECTORY: https://github.com/google/googletest/blob/master/googletest/cmake/internal_utils.cmake#L159-L164

Could you try this?

diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index df03c3129..e36571808 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1603,21 +1603,16 @@ macro(build_gtest)
   set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest_ep-prefix")
   set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
 
-  set(_GTEST_RUNTIME_DIR ${BUILD_OUTPUT_ROOT_DIRECTORY})
+  set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
 
   if(MSVC)
     set(_GTEST_IMPORTED_TYPE IMPORTED_IMPLIB)
     set(_GTEST_LIBRARY_SUFFIX
         "${CMAKE_GTEST_DEBUG_EXTENSION}${CMAKE_IMPORT_LIBRARY_SUFFIX}")
-    # Use the import libraries from the EP
-    set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
   else()
     set(_GTEST_IMPORTED_TYPE IMPORTED_LOCATION)
     set(_GTEST_LIBRARY_SUFFIX
         "${CMAKE_GTEST_DEBUG_EXTENSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
-
-    # Library and runtime same on non-Windows
-    set(_GTEST_LIBRARY_DIR "${_GTEST_RUNTIME_DIR}")
   endif()
 
   set(GTEST_SHARED_LIB
@@ -1632,6 +1627,7 @@ macro(build_gtest)
       ${EP_COMMON_TOOLCHAIN}
       -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
       "-DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}"
+      -DCMAKE_INSTALL_LIBDIR=lib
       -DBUILD_SHARED_LIBS=ON
       -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}
       -DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GTEST_CMAKE_CXX_FLAGS})
@@ -1641,27 +1637,6 @@ macro(build_gtest)
     set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} "-DCMAKE_MACOSX_RPATH:BOOL=ON")
   endif()
 
-  if(CMAKE_GENERATOR STREQUAL "Xcode")
-    # Xcode projects support multi-configuration builds.  This forces the gtest build
-    # to use the same output directory as a single-configuration Makefile driven build.
-    list(
-      APPEND GTEST_CMAKE_ARGS "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${_GTEST_LIBRARY_DIR}"
-             "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
-  endif()
-
-  if(MSVC)
-    if(NOT ("${CMAKE_GENERATOR}" STREQUAL "Ninja"))
-      set(_GTEST_RUNTIME_DIR ${_GTEST_RUNTIME_DIR}/${CMAKE_BUILD_TYPE})
-    endif()
-    set(GTEST_CMAKE_ARGS
-        ${GTEST_CMAKE_ARGS} "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${_GTEST_RUNTIME_DIR}"
-        "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
-  else()
-    list(
-      APPEND GTEST_CMAKE_ARGS "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${_GTEST_RUNTIME_DIR}"
-             "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
-  endif()
-
   add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
 
   if(MSVC AND NOT ARROW_USE_STATIC_CRT)

@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from e91795e to 0bef0c9 Compare December 1, 2020 02:54
@kou
Copy link
Member

kou commented Dec 1, 2020

It seems that the template type name T is conflicted with Visual C++. Could you try this patch?

diff --git a/cpp/src/parquet/statistics_test.cc b/cpp/src/parquet/statistics_test.cc
index 0828f36b3..77e77e0eb 100644
--- a/cpp/src/parquet/statistics_test.cc
+++ b/cpp/src/parquet/statistics_test.cc
@@ -609,7 +609,7 @@ static const int NUM_VALUES = 10;
 template <typename TestType>
 class TestStatisticsSortOrder : public ::testing::Test {
  public:
-  typedef typename TestType::c_type T;
+  using c_type = typename TestType::c_type;
 
   void AddNodes(std::string name) {
     fields_.push_back(schema::PrimitiveNode::Make(
@@ -670,7 +670,7 @@ class TestStatisticsSortOrder : public ::testing::Test {
   }
 
  protected:
-  std::vector<T> values_;
+  std::vector<c_type> values_;
   std::vector<uint8_t> values_buf_;
   std::vector<schema::NodePtr> fields_;
   std::shared_ptr<schema::GroupNode> schema_;
@@ -700,13 +700,13 @@ void TestStatisticsSortOrder<Int32Type>::SetValues() {
 
   // Write UINT32 min/max values
   stats_[0]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[5]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[4]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[5]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[4]), sizeof(c_type)));
 
   // Write INT32 min/max values
   stats_[1]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(c_type)));
 }
 
 // TYPE::INT64
@@ -728,13 +728,13 @@ void TestStatisticsSortOrder<Int64Type>::SetValues() {
 
   // Write UINT64 min/max values
   stats_[0]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[5]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[4]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[5]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[4]), sizeof(c_type)));
 
   // Write INT64 min/max values
   stats_[1]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(c_type)));
 }
 
 // TYPE::FLOAT
@@ -747,8 +747,8 @@ void TestStatisticsSortOrder<FloatType>::SetValues() {
 
   // Write Float min/max values
   stats_[0]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(c_type)));
 }
 
 // TYPE::DOUBLE
@@ -761,8 +761,8 @@ void TestStatisticsSortOrder<DoubleType>::SetValues() {
 
   // Write Double min/max values
   stats_[0]
-      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(T)))
-      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(T)));
+      .set_min(std::string(reinterpret_cast<const char*>(&values_[0]), sizeof(c_type)))
+      .set_max(std::string(reinterpret_cast<const char*>(&values_[9]), sizeof(c_type)));
 }
 
 // TYPE::ByteArray

Here is a patch to fix CMake lint failure:

diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index bdf15e4bc..46872fba3 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1603,7 +1603,7 @@ macro(build_gtest)
   set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest_ep-prefix")
   set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
 
-set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
+  set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
 
   if(MSVC)
     set(_GTEST_IMPORTED_TYPE IMPORTED_IMPLIB)

@kou
Copy link
Member

kou commented Dec 1, 2020

Could you add required GoogleTest version check?

diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index bdf15e4bc..60bdf13ad 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1682,7 +1682,7 @@ set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
 endmacro()
 
 if(ARROW_TESTING)
-  resolve_dependency(GTest)
+  resolve_dependency(GTest REQUIRED_VERSION 1.10.0)
 
   if(NOT GTEST_VENDORED)
     # TODO(wesm): This logic does not work correctly with the MSVC static libraries

@arw2019
Copy link
Contributor Author

arw2019 commented Dec 1, 2020

Thanks @kou!!! Pushed your suggestions

@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from cffbea4 to cd8f7e8 Compare December 1, 2020 06:08
@arw2019
Copy link
Contributor Author

arw2019 commented Dec 1, 2020

Is this related in C++ / AMD64 Windows 2019?

D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(527,33): error C2039: 'TearDownTestCase': is not a member of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:\a\arrow\arrow\cpp\src\parquet/types.h(518): message : see declaration of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(525): message : while compiling class template member function 'testing::internal::SetUpTearDownSuiteFuncType testing::internal::SuiteApiResolver<parquet::test::TestByteArrayValuesWriter>::GetTearDownCaseOrSuite(const char *,int)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:/a/arrow/arrow/cpp/src/parquet/column_writer_test.cc(688): message : see reference to function template instantiation 'testing::internal::SetUpTearDownSuiteFuncType testing::internal::SuiteApiResolver<parquet::test::TestByteArrayValuesWriter>::GetTearDownCaseOrSuite(const char *,int)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:/a/arrow/arrow/cpp/src/parquet/column_writer_test.cc(688): message : see reference to class template instantiation 'testing::internal::SuiteApiResolver<parquet::test::TestByteArrayValuesWriter>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(529,33): error C2039: 'TearDownTestSuite': is not a member of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]
D:\a\arrow\arrow\cpp\src\parquet/types.h(518): message : see declaration of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-writer-test.vcxproj]

@kou
Copy link
Member

kou commented Dec 1, 2020

I think so.
We need a fix like #8782 (comment) for cpp/src/parquet/column_writer_test.cc.

@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from cfaa72b to 6a32ee4 Compare December 1, 2020 20:14
Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just two small comments.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be continue instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, done

Comment on lines 511 to 507
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@arw2019 arw2019 force-pushed the ARROW-10746-GTEST_SKIP branch from 09ae96f to c4d813b Compare December 2, 2020 23:00
@arw2019
Copy link
Contributor Author

arw2019 commented Dec 3, 2020

It's down to three failing checks:

  • Appveyor - not sure what the problem is
  • C++ / AMD64 MacOS 10.15 - looks like a gtest location problem
dyld: Library not loaded: @rpath/libgtest_maind.dylib
  • C++/ AMD64 Windows 2019 - a template instantiation problem in cpp/src/parquet/statistics_test.cc
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(527,33): error C2039: 'TearDownTestCase': is not a member of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\cpp\src\parquet/types.h(518): message : see declaration of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(525): message : while compiling class template member function 'testing::internal::SetUpTearDownSuiteFuncType testing::internal::SuiteApiResolver<TestClass>::GetTearDownCaseOrSuite(const char *,int)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(705): message : see reference to function template instantiation 'testing::internal::SetUpTearDownSuiteFuncType testing::internal::SuiteApiResolver<TestClass>::GetTearDownCaseOrSuite(const char *,int)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(706): message : see reference to class template instantiation 'testing::internal::SuiteApiResolver<TestClass>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(698): message : while compiling class template member function 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types3<T2,T3,T4>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::ByteArrayType,
              T3=parquet::FLBAType,
              T4=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(720): message : see reference to function template instantiation 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types3<T2,T3,T4>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::ByteArrayType,
              T3=parquet::FLBAType,
              T4=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(721): message : see reference to class template instantiation 'testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types3<T2,T3,T4>>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::ByteArrayType,
              T3=parquet::FLBAType,
              T4=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(698): message : while compiling class template member function 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types4<T2,T3,T4,T5>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::DoubleType,
              T3=parquet::ByteArrayType,
              T4=parquet::FLBAType,
              T5=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(720): message : see reference to function template instantiation 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types4<T2,T3,T4,T5>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::DoubleType,
              T3=parquet::ByteArrayType,
              T4=parquet::FLBAType,
              T5=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(721): message : see reference to class template instantiation 'testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types4<T2,T3,T4,T5>>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::DoubleType,
              T3=parquet::ByteArrayType,
              T4=parquet::FLBAType,
              T5=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(698): message : while compiling class template member function 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types5<T2,T3,T4,T5,T6>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::FloatType,
              T3=parquet::DoubleType,
              T4=parquet::ByteArrayType,
              T5=parquet::FLBAType,
              T6=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(720): message : see reference to function template instantiation 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types5<T2,T3,T4,T5,T6>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::FloatType,
              T3=parquet::DoubleType,
              T4=parquet::ByteArrayType,
              T5=parquet::FLBAType,
              T6=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(721): message : see reference to class template instantiation 'testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types5<T2,T3,T4,T5,T6>>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::FloatType,
              T3=parquet::DoubleType,
              T4=parquet::ByteArrayType,
              T5=parquet::FLBAType,
              T6=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(698): message : while compiling class template member function 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types6<T2,T3,T4,T5,T6,T7>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::Int64Type,
              T3=parquet::FloatType,
              T4=parquet::DoubleType,
              T5=parquet::ByteArrayType,
              T6=parquet::FLBAType,
              T7=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(720): message : see reference to function template instantiation 'bool testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types6<T2,T3,T4,T5,T6,T7>>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::Int64Type,
              T3=parquet::FloatType,
              T4=parquet::DoubleType,
              T5=parquet::ByteArrayType,
              T6=parquet::FLBAType,
              T7=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(721): message : see reference to class template instantiation 'testing::internal::TypeParameterizedTest<Fixture,TestSel,testing::internal::Types6<T2,T3,T4,T5,T6,T7>>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
          with
          [
              Fixture=parquet::test::TestStatistics,
              TestSel=testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,
              T2=parquet::Int64Type,
              T3=parquet::FloatType,
              T4=parquet::DoubleType,
              T5=parquet::ByteArrayType,
              T6=parquet::FLBAType,
              T7=parquet::BooleanType
          ]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(698): message : while compiling class template member function 'bool testing::internal::TypeParameterizedTest<parquet::test::TestStatistics,testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,parquet::test::gtest_type_params_TestStatistics_>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:/a/arrow/arrow/cpp/src/parquet/statistics_test.cc(490): message : see reference to function template instantiation 'bool testing::internal::TypeParameterizedTest<parquet::test::TestStatistics,testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,parquet::test::gtest_type_params_TestStatistics_>::Register(const char *,const testing::internal::CodeLocation &,const char *,const char *,int,const std::vector<std::string,std::allocator<std::string>> &)' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:/a/arrow/arrow/cpp/src/parquet/statistics_test.cc(490): message : see reference to class template instantiation 'testing::internal::TypeParameterizedTest<parquet::test::TestStatistics,testing::internal::TemplateSel<parquet::test::TestStatistics_MinMaxEncode_Test>,parquet::test::gtest_type_params_TestStatistics_>' being compiled [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\build\cpp\googletest_ep-prefix\include\gtest/internal/gtest-internal.h(529,33): error C2039: 'TearDownTestSuite': is not a member of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]
D:\a\arrow\arrow\cpp\src\parquet/types.h(518): message : see declaration of 'parquet::ByteArray' [D:\a\arrow\arrow\build\cpp\src\parquet\parquet-internals-test.vcxproj]

I'll keep looking.

@kou
Copy link
Member

kou commented Dec 4, 2020

Both the Appveyor case and the macOS case are caused by same reason. They can't find GoogleTest's library.
I'll take a look them.

cpp/src/parquet/statistics_test.cc: It seems that naming conflict like other build failures but I'm not sure. I'll also take a look it.

@kou
Copy link
Member

kou commented Dec 7, 2020

@github-actions crossbow submit -g nightly

@github-actions
Copy link

github-actions bot commented Dec 7, 2020

Revision: f3f04e8

Submitted crossbow builds: ursa-labs/crossbow @ actions-743

Task Status
centos-7-aarch64 TravisCI
centos-7-amd64 Github Actions
centos-8-aarch64 TravisCI
centos-8-amd64 Github Actions
conda-clean Azure
conda-linux-gcc-py36-aarch64 Drone
conda-linux-gcc-py36-cpu-r36 Azure
conda-linux-gcc-py36-cuda Azure
conda-linux-gcc-py37-aarch64 Drone
conda-linux-gcc-py37-cpu-r40 Azure
conda-linux-gcc-py37-cuda Azure
conda-linux-gcc-py38-aarch64 Drone
conda-linux-gcc-py38-cpu Azure
conda-linux-gcc-py38-cuda Azure
conda-osx-clang-py36-r36 Azure
conda-osx-clang-py37-r40 Azure
conda-osx-clang-py38 Azure
conda-win-vs2017-py36-r36 Azure
conda-win-vs2017-py37-r40 Azure
conda-win-vs2017-py38 Azure
debian-buster-amd64 Github Actions
debian-buster-arm64 TravisCI
debian-stretch-amd64 Github Actions
debian-stretch-arm64 TravisCI
example-cpp-minimal-build-static Github Actions
example-cpp-minimal-build-static-system-dependency Github Actions
gandiva-jar-osx TravisCI
gandiva-jar-xenial TravisCI
homebrew-cpp TravisCI
homebrew-r-autobrew TravisCI
nuget Github Actions
test-conda-cpp Github Actions
test-conda-cpp-valgrind Github Actions
test-conda-python-3.6 Github Actions
test-conda-python-3.6-pandas-0.23 Github Actions
test-conda-python-3.7 Github Actions
test-conda-python-3.7-dask-latest Github Actions
test-conda-python-3.7-hdfs-2.9.2 Github Actions
test-conda-python-3.7-kartothek-latest Github Actions
test-conda-python-3.7-kartothek-master Github Actions
test-conda-python-3.7-pandas-latest Github Actions
test-conda-python-3.7-pandas-master Github Actions
test-conda-python-3.7-spark-branch-3.0 Github Actions
test-conda-python-3.7-turbodbc-latest Github Actions
test-conda-python-3.7-turbodbc-master Github Actions
test-conda-python-3.8 Github Actions
test-conda-python-3.8-dask-master Github Actions
test-conda-python-3.8-hypothesis Github Actions
test-conda-python-3.8-jpype Github Actions
test-conda-python-3.8-pandas-latest Github Actions
test-conda-python-3.8-spark-master Github Actions
test-debian-10-cpp CircleCI
test-debian-10-go-1.12 Azure
test-debian-10-python-3 Azure
test-debian-c-glib CircleCI
test-debian-ruby CircleCI
test-fedora-33-cpp CircleCI
test-fedora-33-python-3 Azure
test-r-linux-as-cran Github Actions
test-r-rhub-ubuntu-gcc-release Azure
test-r-rocker-r-base-latest Azure
test-r-rstudio-r-base-3.6-bionic Azure
test-r-rstudio-r-base-3.6-centos6 Azure
test-r-rstudio-r-base-3.6-centos8 Azure
test-r-rstudio-r-base-3.6-opensuse15 Azure
test-r-rstudio-r-base-3.6-opensuse42 Azure
test-ubuntu-16.04-cpp CircleCI
test-ubuntu-18.04-cpp CircleCI
test-ubuntu-18.04-cpp-cmake32 CircleCI
test-ubuntu-18.04-cpp-release CircleCI
test-ubuntu-18.04-cpp-static CircleCI
test-ubuntu-18.04-docs Azure
test-ubuntu-18.04-python-3 Azure
test-ubuntu-18.04-r-sanitizer Azure
test-ubuntu-20.04-cpp Github Actions
test-ubuntu-20.04-cpp-14 Github Actions
test-ubuntu-20.04-cpp-17 Github Actions
test-ubuntu-c-glib CircleCI
test-ubuntu-ruby Azure
ubuntu-bionic-amd64 Github Actions
ubuntu-bionic-arm64 TravisCI
ubuntu-focal-amd64 Github Actions
ubuntu-focal-arm64 TravisCI
ubuntu-groovy-amd64 Github Actions
ubuntu-groovy-arm64 TravisCI
ubuntu-xenial-amd64 Github Actions
ubuntu-xenial-arm64 TravisCI
wheel-manylinux1-cp36m Azure
wheel-manylinux1-cp37m Azure
wheel-manylinux1-cp38 Azure
wheel-manylinux2010-cp36m Azure
wheel-manylinux2010-cp37m Azure
wheel-manylinux2010-cp38 Azure
wheel-manylinux2014-cp36m Azure
wheel-manylinux2014-cp37m Azure
wheel-manylinux2014-cp38 Azure
wheel-osx-high-sierra-cp36m TravisCI
wheel-osx-high-sierra-cp37m TravisCI
wheel-osx-high-sierra-cp38 TravisCI
wheel-osx-mavericks-cp36m TravisCI
wheel-osx-mavericks-cp37m TravisCI
wheel-osx-mavericks-cp38 TravisCI
wheel-win-cp36m Github Actions
wheel-win-cp37m Github Actions
wheel-win-cp38 Github Actions

Copy link
Member

@kou kou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

All green. I'll merge this.

@kou kou closed this in 3453943 Dec 7, 2020
@arw2019
Copy link
Contributor Author

arw2019 commented Dec 7, 2020

Thanks @kou @pitrou !!!

@arw2019 arw2019 deleted the ARROW-10746-GTEST_SKIP branch December 7, 2020 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants