Improve macOS test reliability (#904)

* Return to 20ms block sizes on macOS to improve test reliability.

* Use Windows 2022 in test environment.

Don't want to be fighting Windows problems too.

* Don't want to be fighting gfortran either.

* Try caching Homebrew package install to decrease compile/test time for macOS.

* See if we can make RADE reporting a bit more reliable in the GH environment.
ms-macos-test-fix-2
Mooneer Salem 2025-05-31 19:00:45 -07:00 committed by GitHub
parent 1a6efb8b3e
commit 150b2cde7d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 11 additions and 14 deletions

View File

@ -22,10 +22,9 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install packages
shell: bash
working-directory: ${{github.workspace}}
run: brew install automake libtool numpy sox octave wxwidgets speexdsp portaudio libsndfile libsamplerate hamlib
- uses: gerlero/brew-install@v1
with:
packages: automake libtool numpy sox octave wxwidgets speexdsp portaudio libsndfile libsamplerate hamlib
- name: Install octave-signal
if: ${{ matrix.os == 'macos-13' }}
@ -33,7 +32,6 @@ jobs:
working-directory: ${{github.workspace}}
run: |
# make sure gfortran is available
sudo ln -s /usr/local/bin/gfortran-14 /usr/local/bin/gfortran
gfortran --version
octave-cli --eval "pkg install -forge control; pkg install -forge signal"
@ -103,10 +101,9 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install packages
shell: bash
working-directory: ${{github.workspace}}
run: brew install automake libtool numpy sox
- uses: gerlero/brew-install@v1
with:
packages: automake libtool numpy sox
- name: Build universal freedv-gui
shell: bash

View File

@ -88,7 +88,7 @@ jobs:
path: ${{github.workspace}}/build_windows/FreeDV.exe
test:
runs-on: windows-latest
runs-on: windows-2022
needs: build
env:
RADIO_TO_COMPUTER_DEVICE: "CABLE Output (VB-Audio Virtual Cable)"

View File

@ -46,7 +46,7 @@ thread_local int MacAudioDevice::CurrentCoreAudioId_ = 0;
constexpr static double kOneNanosecond = 1.0e9;
// The I/O interval time in seconds.
constexpr static double AUDIO_SAMPLE_BLOCK_SEC = 0.010;
constexpr static double AUDIO_SAMPLE_BLOCK_SEC = 0.020;
static OSStatus GetIOBufferFrameSizeRange(AudioObjectID inDeviceID,
UInt32* outMinimum,
@ -801,4 +801,4 @@ int MacAudioDevice::DeviceOverloadCallback_(
tmpThread.detach();
return noErr;
}
}

View File

@ -322,9 +322,9 @@ class HamlibHandler:
self.ErrParam()
else:
if (not x) and self.app.ptt:
# Sleep for 20ms to match typical SDR behavior.
# Sleep for 20ms to match typical SDR behavior + 5ms to account for varying system load.
# Example: Flex 6000/8000 (https://community.flexradio.com/discussion/8028104/question-regarding-tx-delay)
time.sleep(20 / 1000)
time.sleep(25 / 1000)
os.kill(self.pid, signal.SIGTERM)
if x:
self.app.ptt = 1