Skip to content

Tests fail because of non-deterministic floating-point precision #62

Open

Description

@CervEdin

If I run pytest I get failures because of a what appears to be due to difference in precision in the time= attribute in the xml

<testsuites disabled="0" errors="0" failures="24" tests="65" time="0.019785572146">

and a couple of other places.

What's expected

<testsuites disabled="0" errors="0" failures="24" tests="65" time="0.019785572146">

What I get

<testsuites disabled="0" errors="0" failures="24" tests="65" time="0.019785572145999998">

I suspect this is due to different behaviors in the underlying yamlish and PyYAML dependencies on different platforms.

I don't think it's a big deal that floating-point conversion of TAP to JUnit is non-deterministic on different platforms.
But it's regrettable that the tests of tap2junit relies on this deterministic behavior.

I'm going to take a look and see if I can fix this in a suitable manner, meanwhile I report the issue here.

Activity

  1. cclauss commented on Sep 25, 2024

    @cclauss
    Collaborator
  2. CervEdin commented on Sep 25, 2024

    @CervEdin
    Author

    @cclauss thanks

    Could be, maybe this division by 1000 is the cause for different precision in the floating point number
    df57e72#r962286153

    🤔

  3. CervEdin commented on Sep 25, 2024

    @CervEdin
    Author

    Actually I think this is the culprit

    https://github.com/kyrus/python-junit-xml/blob/4bd08a272f059998cedf9b7779f944d49eba13a6/junit_xml/__init__.py#L135

    all of the differences are regarding the time of the testsuite element

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions