Skip to content

[C++] Many tests are not being run on Windows #47434

Description

@WillAyd

Describe the bug, including details regarding any error messages, version, and platform.

With a clean build of Arrow:

$ cmake -S . -B build -G Ninja -DARROW_COMPUTE=ON -DARROW_BUILD_TESTS=ON
$ cmake --build build

The default ctest invocation seems to show everything as passing:

$ cd build
$ ctest

However, with verbose inspection, you will see that many tests are not actually running:

$ ctest --verbose
UpdateCTestConfiguration  from :C:/Users/Will/clones/arrow/cpp/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :C:/Users/Will/clones/arrow/cpp/build/DartConfiguration.tcl
Test project C:/Users/Will/clones/arrow/cpp/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
      Start  1: arrow-array-test

1: Test command: C:\Users\Will\clones\arrow\cpp\build\debug\arrow-array-test.exe
1: Working Directory: C:/Users/Will/clones/arrow/cpp/build/src/arrow
1: Test timeout computed to be: 10000000
1: Running main() from C:\Users\Will\clones\arrow\cpp\build\_deps\googletest-src\googletest\src\gtest_main.cc
1: [==========] Running 0 tests from 0 test suites.
1: [==========] 0 tests from 0 test suites ran. (0 ms total)
1: [  PASSED  ] 0 tests.
 1/49 Test  #1: arrow-array-test ......................   Passed    0.02 sec
test 2
      Start  2: arrow-buffer-test

2: Test command: C:\Users\Will\clones\arrow\cpp\build\debug\arrow-buffer-test.exe
2: Working Directory: C:/Users/Will/clones/arrow/cpp/build/src/arrow
2: Test timeout computed to be: 10000000
2: Running main() from C:\Users\Will\clones\arrow\cpp\build\_deps\googletest-src\googletest\src\gtest_main.cc
2: [==========] Running 0 tests from 0 test suites.
2: [==========] 0 tests from 0 test suites ran. (0 ms total)
2: [  PASSED  ] 0 tests.
 2/49 Test  #2: arrow-buffer-test .....................   Passed    0.01 sec
test 3
      Start  3: arrow-extension-type-test

3: Test command: C:\Users\Will\clones\arrow\cpp\build\debug\arrow-extension-type-test.exe
3: Working Directory: C:/Users/Will/clones/arrow/cpp/build/src/arrow
3: Test timeout computed to be: 10000000
3: Running main() from C:\Users\Will\clones\arrow\cpp\build\_deps\googletest-src\googletest\src\gtest_main.cc
3: [==========] Running 0 tests from 0 test suites.
3: [==========] 0 tests from 0 test suites ran. (0 ms total)
3: [  PASSED  ] 0 tests.
 3/49 Test  #3: arrow-extension-type-test .............   Passed    0.01 sec
test 4
      Start  4: arrow-misc-test

4: Test command: C:\Users\Will\clones\arrow\cpp\build\debug\arrow-misc-test.exe
4: Working Directory: C:/Users/Will/clones/arrow/cpp/build/src/arrow
4: Test timeout computed to be: 10000000
4: Running main() from C:\Users\Will\clones\arrow\cpp\build\_deps\googletest-src\googletest\src\gtest_main.cc
4: [==========] Running 0 tests from 0 test suites.
4: [==========] 0 tests from 0 test suites ran. (0 ms total)
4: [  PASSED  ] 0 tests.

...

From a quick glance, the only test executables actually running are arrow-compute-internals-test, arrow-json-integration-test, arrow-utility-test, and arrow-compute-scalar-cast-test. The common pattern for these is that they define their own main function. I also noticed that adding the following main function:

int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

To gtest_util_test.cc allows you to run the tests in the arrow-gtest-util-test executable

Component(s)

C++

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions