-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Unit tests CMake and Travis refactoring #1786
Unit tests CMake and Travis refactoring #1786
Conversation
Hi Sergio, great work! I'll have a detailed look once I'm back in the office next week. Merry Christmas! |
.travis.yml
Outdated
@@ -33,7 +33,8 @@ env: | |||
matrix: | |||
include: | |||
- compiler: gcc | |||
env: TASK="test" | |||
env: TASK="test-core" | |||
- env: TASK="test-extended" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You may need to set the compiler for this task* as well. Otherwise you might end up with ["gcc", "clang"]
set as compiler, I think?
* same for doc
fyi, I've been running the segmentation module without issues for a couple of months now. |
Hey guys :) Can I get a volunteer to have a look at these? I have some spare time the next two weeks and wanted to have the tests running before starting to review PRs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to see that last commit of Marco running on Travis, but somehow it does not pick it up and still runs the broken version: https://travis-ci.org/PointCloudLibrary/pcl/jobs/186595213
test/keypoints/CMakeLists.txt
Outdated
ARGUMENTS "${PCL_SOURCE_DIR}/test/cturtle.pcd") | ||
set(SUBSYS_NAME tests_keypoints) | ||
set(SUBSYS_DESC "Point cloud library keypoints module unit tests") | ||
set(SUBSYS_DEPS global_tests keypoints common search kdtree octree features filters) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do you decide which modules are SUBSYS_DEPS
for a particular test subsystem?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mimic the dependencies from the library/module they belong i.e.: test_keypoints has all the deps the module keypoints has. I don't remember exactly why I added all the recursive dependencies explicitly, but I think it's to ensure the include directories and link flags are properly defined when creating each individual test target.
It's been a while now, my memory is not that fresh :/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for this delay in reviewing!
So basically these are propagated from the respective module under test. Do you recall any reasons this can not be done automatically? Would definitely improve maintainability.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the massive delay 😅 . I found a way to mimic the behaviour you described, to I'm applying the changes now. The doxygen issue after...
- libqhull-dev | ||
- libvtk5-dev | ||
- libflann-dev | ||
- doxygen |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This brings us an ancient version of Doxygen from 2011 (1.7.6 to be precise). Apart from gazillion bug fixes, one useful feature that is missing there is Markdown support. Back in the day I even made a PR (#526) to get a newer version. I'm not sure how much of PCL docstrings are actually written with Markdown, but the fact that I made that request suggests that there are at least some.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks exactly like the solution we need. Doxygen packages backported for Precise. It will bump the version to 1.8.8 which already has markdown support.
You're right. I'll have a look later today. |
So there's an issue with that given this particular line, since this is in fact a pull request if [[ $TRAVIS_PULL_REQUEST != 'false' ]]; then exit; fi But there's still something off, even with the CI job on my local fork. Is there any reason for us to clone the doc repo like this git clone git@github.com:PointCloudLibrary/documentation.git . instead of through the usual url? That one ended up failing in my local CI job because it requested me to enter an RSA password (which I assume is somehow encoded in all those 'secure' lines in the travis.yml). |
We clone via SSH to later allow password-less push of the newly generated docs. |
Let me give it a try then |
ab34ef6
to
7624b8b
Compare
It's suffering from the same issue as my local job (which is expected). A password is prompted to access the RSA file which results in the job hanging and eventually failed due to lack of output for 10 minutes. Any ideas on how to overcome this? |
You can replace the git clone by
```
git clone https://github.com/PointCloudLibrary/pcl.git . # Don't auth with
gh for now
```
then remove the lines that contain
"if [[ $TRAVIS_PULL_REQUEST != 'false' ]]; then exit; fi"
and
"git push --force"
…On Wed, May 17, 2017 at 3:15 PM, Sérgio Agostinho ***@***.***> wrote:
It's suffering from the same issue
<https://travis-ci.org/PointCloudLibrary/pcl/jobs/233212848#L1255> as my
local job (which is expected). A password is prompted to access the RSA
file which results in the job hanging and eventually failed due to lack of
output for 10 minutes.
Any ideas on how to overcome this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#1786 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGGmv5j-bRMjs0IncwRKonBXoKSPXyoNks5r6vL2gaJpZM4LVUe9>
.
|
Marco probably meant |
I did that before, here's the job output on that one (it's from my forks CI but that's pretty much equivalent) |
Ok, then I think this part is fine. |
These timing fluctuations are cumbersome. I guess the underlying point you're trying to make is, to reconsider splitting the current tasks even more. |
Well yes, that is the only thing that prevents us from merging. |
Updated the table and test batches. Tried to run again make with -j2. It might run out of memory but let's see. |
It should be stable for a while now. I opted to partition the building of apps, examples and tools into their own individual jobs, to ensure the best probabilities of not running out of time. Now it's a matter of deciding which commits to squash (especially these last ones). |
Seems to work now! Indeed, makes sense to squash some of the latest commits. Regarding the failing test case: it tests the behavior of |
So after the review process is complete (not sure if you're done with it), I would propose to squash everything into two main commits: one pertaining the test refactoring (CMake and source files) and the other one related to the changes done in Travis script and configuration files. @MarcoFalke If I squash your commit it will omit your contribution. Would this be a problem? I can always try to keep it separate during the rebase process. |
Feel free to squash. The contribution wasn't substantial anyway.
…On Thu, May 18, 2017 at 5:25 PM, Sérgio Agostinho ***@***.***> wrote:
Seems to work now! Indeed, makes sense to squash some of the latest
commits.
So after the review process is complete (not sure if you're done with it),
I would propose to squash everything into two main commits: one pertaining
the test refactoring (CMake and source files) and the other one related to
the changes done in Travis script and configuration files.
@MarcoFalke <https://github.com/marcofalke> If I squash your commit it
will omit your contribution. Would this be a problem? I can always try to
keep it separate during the rebase process.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1786 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGGmv4JoEPAEbsshZX04vXHPBNQKkmR4ks5r7GLNgaJpZM4LVUe9>
.
|
- Include directories are now added for opt dependencies - Make module dependencies propagate to the corresponding tests
- install dependencies from package manager - Full build now also builds simulation, apps and examples - tests refactoring, now split into core and extended - Specify compiler explicitly on all jobs, reset author and date for docs (author @MarcoFalke) - Add ppa of backported doxygen for Precise. Allows having a more recent version than the default one on Precise which already supports markdow. - Prevent doc push in case of a pull request - Refactor into three test blocks - Limit the number of jobs in the extension tests - Refactored compilation of lib, apps, tools and examples
c72e2b8
to
372fae5
Compare
Et voilá. Let's allow it to run and then finally conclude this guy 😄 |
@jspricke fine to merge? |
Thanks a lot guys and sorry for keep you waiting :). |
Hey everyone, here's my Christmas 🎁 :) This PR addresses the following:
Modules test dependencies (optional in parenthesis):
Test Matrix
Updated
Closes #1785.
Merry Christmas 🎅