Bug 72374

Summary: volume-test.c from PA 4.0 fails on 32-bit GNU/Linux
Product: PulseAudio Reporter: Ludovic Courtès <ludo>
Component: coreAssignee: pulseaudio-bugs
Status: RESOLVED FIXED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: andreas, lennart
Version: unspecified   
Hardware: Other   
OS: All   
i915 platform: i915 features:
Attachments: Complete stdout + stderr log of 'volume-test'.

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.