Skip to content

TestStatus

Phil Burk edited this page Feb 2, 2025 · 8 revisions

Current Status of PortAudio Tests

Here are the results of the PortAudio Test Suite on various platforms. Please see the Test Plan.

The core Test Suite consists of the following tests. They are placed in the "bin" directory when built using 'make'.

These tests will return a zero exit code if they pass and can be used for automated testing.

  • paloopback
  • paqa_errs
  • paqa_devs

These tests require a human to listen to the test to determine PASS/FAIL.

  • patest_multi_sine
  • patest_leftright
  • paex_record
  • patest_stop_playout
  • patest_wire
  • paex_write_sine

Latest Results

For status, please use:

  • "PASS" if all tests pass.
  • "FAIL" if any tests fail. List failing tests. Assume any test not listed has passed.
Test Name Host API Date Tester Status
paex_record MacOS 20241117 philburk PASS
paex_write_sine MacOS 20241117 philburk PASS
paloopback MacOS 20250201 philburk PASS using Zoom AMS-22
patest_leftright MacOS 20241117 philburk PASS
patest_multi_sine MacOS 20250201 philburk PASS
patest_stop_playout MacOS 20241117 philburk PASS
patest_wire MacOS 20250201 philburk PASS, fixed channels in #1000
paqa_devs MacOS 20250201 philburk FAIL on blocking non-interleaved
paqa_errs MacOS 20250201 philburk PASS
paqa_latency MacOS 20221017 philburk FAIL on ZoomAudioDevice, Issue #742

Software Status

Most of those additional tests are useful and are expected to build and run. But the following tests have problems.

Broken Build Tests

These tests do not build. They should be reviewed and probably deleted.

  • patest_converters.c - Link error with PaUtil_SelectConverter.

Failing Tests

  • patest_in_overflow.c - Good test. But on a fast computer it takes too long to load up the CPU.
  • patest_out_underflow.c - Good test. But on a fast computer it has trouble causing underflows.
  • patest_clip.c - Test expects over-range sound to wrap and sound nasty. But Mac uses floats at device level so it does its own clipping. It does not sound nasty. It just works.
  • patest_latency.c - Does not respond to key presses on Mac.
  • patest_prime.c - Latency is never high enough on Mac to hear the difference between primed and non-primed.
  • patest_read_write_wire.c - Use blocking read/write in full duplex mode. Fails quickly on Mac with input overflow so I had to disable the error checks. Needs redesign with priming of the output buffers.
  • patest_sine_channelmaps.c - No sound heard on Mac.
  • patest_stop.c - Sounds does not get cut short on Mac. Test relies on 3 second latency. Not possible on Mac.
  • patest_write_sine_nonint.c - Test of blocking write with non-interleaved buffers. Broken on Mac.

Pointless Tests

These programs are either redundant or unnecessary as tests. We should delete them instead of maintaining them. This is only a partial list.

  • patest_pink.c - Nice demonstration of algorithm but not relevant as a PA test. Make an example out of it?
  • patest_ringmix.c - Cute audio hack but pointless.
  • patest_toomanysines.c - Redundant because of patest_out_overflow.c

Platform Specific Tests

Windows

  • patest_dsound_surround.c
  • patest_jack_wasapi.c
  • patest_mono_asio_channel_select.c
  • patest_wmme_ac3.c
  • patest_wmme_low_level_latency_params.c
  • patest_wmme_surround.c

Linux

Macintosh

  • patest_sine_channelmaps.c
Clone this wiki locally