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

arm64 test failures during debbuild #161

Closed
scpeters opened this issue Sep 28, 2020 · 5 comments · Fixed by #206
Closed

arm64 test failures during debbuild #161

scpeters opened this issue Sep 28, 2020 · 5 comments · Fixed by #206
Assignees
Labels
tests Broken or missing tests / testing infra

Comments

@scpeters
Copy link
Member

There were some arm64 test failures when building 6.6.0 debs that were successful when building 6.5.0.

[ RUN      ] PoseTest.OperatorStreamOut
/var/lib/jenkins/workspace/ign-math6-debbuilder/build/ignition-math-6.6.0/src/Pose_TEST.cc:155: Failure
Expected equality of these values:
  stream.str()
    Which is: "0.1 1.2 2.3 -0 0.1 1"
  "0.1 1.2 2.3 0 0.1 1"
[  FAILED  ] PoseTest.OperatorStreamOut (11 ms)

I'm not sure what has changed to cause this because the difference between 6.5.0 and 6.6.0 is only #158, which is unrelated to this test failure.

@scpeters
Copy link
Member Author

testing with gazebo-tooling/action-gz-ci@314bdf6 and dccb189

@chapulina chapulina added the tests Broken or missing tests / testing infra label Oct 12, 2020
@j-rivero j-rivero self-assigned this Oct 12, 2020
@j-rivero
Copy link
Contributor

I'm not sure what has changed to cause this because the difference between 6.5.0 and 6.6.0 is only #158, which is unrelated to this test failure.

I've used the debian patching system to get one fix I needed to do in Debian packaging to avoid the remove of Gazebo some weeks ago.

root of the problem is that the different platform optimizations can end up in a negative zero so when we compare the strings the result does not match because of the signal. We probably want to implement a method of comparing it more robust.

@j-rivero
Copy link
Contributor

Thinking on the solution for this, I have some doubts: does it make any sense that a Pose returns a negative 0.0 as a stream result? Does it make sense that a Vector or Quaternion use negative zeros instead of just unsigned zeros? //cc @scpeters @azeey

@azeey
Copy link
Contributor

azeey commented Dec 6, 2020

I would vote for fixing the stream operators to check if the value is zero and output an unsigned zero. I've used std::fpclassify for this in sdformat.

https://github.com/osrf/sdformat/blob/983e8fae73ace20897c97dffacbd00fb0ec01ccc/src/parser_urdf.cc#L1113-L1117

@scpeters
Copy link
Member Author

fixed by #206

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Broken or missing tests / testing infra
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants