Bug 72374 - volume-test.c from PA 4.0 fails on 32-bit GNU/Linux
Summary: volume-test.c from PA 4.0 fails on 32-bit GNU/Linux
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: core (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
Depends on:
Reported: 2013-12-05 21:42 UTC by Ludovic Courtès
Modified: 2014-01-03 12:17 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:

Complete stdout + stderr log of 'volume-test'. (1.38 MB, text/plain)
2013-12-05 21:42 UTC, Ludovic Courtès

Description Ludovic Courtès 2013-12-05 21:42:55 UTC
Created attachment 90326 [details]
Complete stdout + stderr log of 'volume-test'.

The volume-test.c fails repeatedly on i686 GNU/Linux:

  max deviation: 1 n=252
  0%: Checks: 1, Failures: 1, Errors: 0
  tests/volume-test.c:133:F:volume:volume_test:0: Assertion 'mdn <= 251' failed

This is with GCC 4.8.2 and glibc 2.18.

Could it be a rounding issue?
Comment 1 Tanu Kaskinen 2013-12-14 07:15:27 UTC
This is reproducible on my machine too (64-bit, GCC 4.8.2). I tried v2.0, v3.0, v4.0 and the current master, and the test fails always, so this is not any new breakage. The test passes on my previous computer (I didn't try now, but I have run the test set before).

volume-test does about 9 million volume conversion tests. In each test, a pa_volume_t value is converted to a linear volume factor and a dB value, and then the linear factor and the dB value are converted back to pa_volume_t. If either of the resulting pa_volume_t values differ from the original, mdn is incremented. Out of the 9 million tests, 251 are allowed to "fail", because sometimes there's a rounding error.

On your machine 252 tests fail, and on my machines the number is 253. The variance seems to come from hardware differences. It seems pretty safe to increase the allowed failure limit from 251 to 253.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.