Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable Global Tests on Windows CI #2137

Merged
merged 3 commits into from
Dec 26, 2017

Conversation

UnaNancyOwen
Copy link
Member

Enable Global Tests on Windows CI. #2136

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 10, 2017

Oops, It is failed installing google test with Vcpkg.
Please wait for fixes it... microsoft/vcpkg#2345

.appveyor.yml Outdated
-DBUILD_examples=OFF
-DBUILD_tools=OFF
-DBUILD_apps=OFF
..
- cmake --build . --config %CONFIGURATION%
- ctest -C %CONFIGURATION% -V
Copy link
Member

Choose a reason for hiding this comment

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

Don't forget to add this new line later.

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed

@SergioRAgostinho
Copy link
Member

Nice digging on that request thread ^^

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 14, 2017

Tests for Visual Studio 2015 (x86) were finished without timeout. (1hours 17min.)
But, Tests for Visual Studio 2015 (x64) were timed out. It is necessary a little more tricks.
I think that it would be good to try the Ninja build system. Also, I think it is necessary to consider that we ask AppVeyor to assign faster instances or more timeout limits.
Do you have any ideas?

@SergioRAgostinho
Copy link
Member

SergioRAgostinho commented Dec 14, 2017 via email

@UnaNancyOwen UnaNancyOwen force-pushed the fix_appveyor branch 2 times, most recently from 7616af4 to 7c53cf9 Compare December 17, 2017 12:20
@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 18, 2017

I was implemented Tests with Ninja build tool. Probably, It is building faster than MSBuild.
Tests for x64 still time-out. But, That is on state that 3rdParty was still not cached.
I think test for x64 will exit without time-out if it is on state that 3rdParty was cached.
(3rdParty installation process took about 20 min. It will exit soon if it is state on that 3rdParty cached.)

By default, AppVeyor has disabled saving cache in pull request builds.
Therefore, We need to temporarily turn ON "Save build cache in Pull Requests" option to caching 3rdParty. (That option will necessary to turn off after cashed right away because it will affect other pull requests too.)
https://www.appveyor.com/docs/build-cache/#saveupdate-cache-before-build-finishes

@UnaNancyOwen UnaNancyOwen added status: needs decision needs: code review Specify why not closed/merged yet labels Dec 18, 2017
@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 18, 2017

What do you think about failed tests.
We can temporarily turn off these tests until fixed.
(But, I think these tests should preferably be fixed.)

93% tests passed, 7 tests failed out of 104

The following tests FAILED:
	  1 - test_2d (Failed)
	 13 - common_eigen (Failed)
	 23 - feature_rift_estimation (Failed)
	 25 - feature_cppf_estimation (Failed)
	 27 - feature_pfh_estimation (Failed)
	 50 - filters_sampling (Failed)
	 68 - io_grabbers (Failed)

@UnaNancyOwen
Copy link
Member Author

@SergioRAgostinho I don't want to split the tests job. If possible, I think that it is good to keep simple.
Please review this yaml that build tests with Ninja build tools.
I think it is ready to merge after 3rdParty cached and confirm to exit without timeout.
Also, If it is necessary to temporarily disable failed tests, I will push a commit to do it.
What do you think?

Copy link
Member

@SergioRAgostinho SergioRAgostinho left a comment

Choose a reason for hiding this comment

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

I think it is ready to merge after 3rdParty cached and confirm to exit without timeout.

I'm ok with that. I assume you have permissions for doing this on your own, as a member of the PCL team.

Also, If it is necessary to temporarily disable failed tests, I will push a commit to do it.

Also fine by me.

.appveyor.yml Outdated
# Platform: x64
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
PLATFORM: x86
GENERATOR: 'Ninja'
Copy link
Member

Choose a reason for hiding this comment

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

If GENERATOR: 'Ninja' is valid for all jobs, you might was well simply add it as a global env, just like VCPKG_DIR and NINJA_DIR.

CMakeLists.txt Outdated
@@ -206,6 +206,9 @@ set(PCL_OUTPUT_BIN_DIR "${PCL_BINARY_DIR}/${BIN_INSTALL_DIR}")
make_directory("${PCL_OUTPUT_LIB_DIR}")
make_directory("${PCL_OUTPUT_BIN_DIR}")
if(WIN32)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PCL_OUTPUT_LIB_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PCL_OUTPUT_BIN_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PCL_OUTPUT_BIN_DIR}")
Copy link
Member

Choose a reason for hiding this comment

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

Notice that now we can move

  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PCL_OUTPUT_LIB_DIR}")
  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PCL_OUTPUT_BIN_DIR}")

out of the if/else(WIN32) conditionals, since if became common to all platforms.

@SergioRAgostinho SergioRAgostinho added needs: author reply Specify why not closed/merged yet and removed needs: code review Specify why not closed/merged yet status: needs upstream fix status: needs decision labels Dec 19, 2017
@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 19, 2017

I temporarily turned ON "Save build cache in Pull Requests" option for make 3rdParty cache.
It turns OFF after cache was created.

@UnaNancyOwen
Copy link
Member Author

Hmm, The boost port was updated while creating cache.
I think need fix to upstream. I will redo this after fixed.

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 20, 2017

I found a problem (microsoft/vcpkg#2406) in new Boost port.
We need to wait for fixed. Fixed microsoft/vcpkg#2409

@SergioRAgostinho
Copy link
Member

@SergioRAgostinho SergioRAgostinho added needs: more work Specify why not closed/merged yet status: needs upstream fix and removed needs: author reply Specify why not closed/merged yet labels Dec 20, 2017
@UnaNancyOwen
Copy link
Member Author

I will retry to create 3rdParty cache and running tests.

@SergioRAgostinho
Copy link
Member

Seems like it's time to disable the failing tests :)

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 22, 2017

Currently, These tests have failed.

The following tests FAILED:
	 13 - common_eigen (Failed)
	 23 - feature_rift_estimation (Failed)
	 25 - feature_cppf_estimation (Failed)
	 27 - feature_pfh_estimation (Failed)
	 50 - filters_sampling (Failed)
	 68 - io_grabbers (Failed)
	 81 - registration_api (Failed)

How to disable these tests?
Disable these tests by comment out?

#PCL_ADD_TEST(common_eigen test_eigen FILES test_eigen.cpp LINK_WITH pcl_gtest pcl_common)

Or, Disable these tests by conditional branch?

if(NOT MSVC)
  PCL_ADD_TEST(common_eigen test_eigen FILES test_eigen.cpp LINK_WITH pcl_gtest pcl_common)
endif()

@SergioRAgostinho
Copy link
Member

SergioRAgostinho commented Dec 22, 2017 via email

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 23, 2017

Currently, Vcpkg build failed. microsoft/vcpkg#2427
We need to wait for fixed again. :( Fixed

@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 24, 2017

Tests was exit without timeout and complete successfully! 🎉
@SergioRAgostinho @taketwo Please review it.

Copy link
Member

@SergioRAgostinho SergioRAgostinho left a comment

Choose a reason for hiding this comment

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

LGTM. You're gonna need to squash some of these commits. These are the commits which are particularly relevant to be kept isolated:

  • 15b515b
  • e5103a1 and 43a5193 to be squashed into a single one
  • The rest can all be squashed into a third commit enabling tests on windows.

Should we freeze vcpkg to the current commit, to prevent upstream breakage down the road?

@SergioRAgostinho SergioRAgostinho added status: needs decision needs: author reply Specify why not closed/merged yet and removed needs: more work Specify why not closed/merged yet labels Dec 24, 2017
@SergioRAgostinho
Copy link
Member

By the way. Why did test_2d started failing now? Is it somehow related to 05a0e95 ? It can be fixed by adding the io dependency on the test_2d target.

Enable Global Tests on Windows CI.
Ninja build system doesn't use CMAKE_*_OUTPUT_DIRECTORY_${CONFIG} that
setting the output directory for each build configure.
Add 1.65.1 and 1.66.0
@UnaNancyOwen
Copy link
Member Author

UnaNancyOwen commented Dec 24, 2017

Should we freeze vcpkg to the current commit, to prevent upstream breakage down the road?

It will not be installed when cached. And, I think it will be fixed quickly even if there is a time when vcpkg couldn't be built. (#2137 (comment) is unusual case.)
Therefore, I think that it is unnecessary.

By the way. Why did test_2d started failing now? Is it somehow related to 05a0e95 ? It can be fixed by adding the io dependency on the test_2d target.

I tried test_2d with/without that commit, but both case also failed.
It succeed on x64, but failed on x86.

@taketwo
Copy link
Member

taketwo commented Dec 25, 2017

BTW, how did you come up with the list of boost libraries to be installed? These are different from what Travis build needs.

@UnaNancyOwen
Copy link
Member Author

This part is the modules that PCL specifies in BOOST_REQUIRED_MODULES(pcl_find_boost.cmake#L39-L45).
In Addition, I added the other modules that was required when tried to built on my local environment.
Should I specify more strictly?

boost-system
boost-filesystem
boost-thread
boost-date-time
boost-iostreams
boost-chrono

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog: new feature Meta-information for changelog generation module: ci platform: windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants