Hide main window during tests to prevent GUI from interfering.

ms-remove-deprecated-modes
Mooneer Salem 2025-05-21 08:33:06 -07:00
parent 3eebe33183
commit 69689bb927
4 changed files with 28 additions and 3 deletions

View File

@ -81,5 +81,5 @@ jobs:
sleep 5
ln -s ${{github.workspace}}/build_linux/rade_src/model19_check3 model19_check3
. ../rade-venv/bin/activate
PYTHONPATH=${{github.workspace}}/build_linux/rade_src:$PYTHONPATH ctest -V
UT_HIDE_WINDOW=1 PYTHONPATH=${{github.workspace}}/build_linux/rade_src:$PYTHONPATH ctest -V

View File

@ -79,7 +79,7 @@ jobs:
shell: bash
working-directory: ${{github.workspace}}/build_osx
run: |
FREEDV_COMPUTER_TO_RADIO_DEVICE="VB-Cable" FREEDV_RADIO_TO_COMPUTER_DEVICE="VB-Cable" FREEDV_COMPUTER_TO_SPEAKER_DEVICE="BlackHole1 2ch" FREEDV_MICROPHONE_TO_COMPUTER_DEVICE="BlackHole2 2ch" ctest -V
UT_HIDE_WINDOW=1 FREEDV_COMPUTER_TO_RADIO_DEVICE="VB-Cable" FREEDV_RADIO_TO_COMPUTER_DEVICE="VB-Cable" FREEDV_COMPUTER_TO_SPEAKER_DEVICE="BlackHole1 2ch" FREEDV_MICROPHONE_TO_COMPUTER_DEVICE="BlackHole2 2ch" ctest -V
#- name: Zip up traces
# shell: bash

View File

@ -95,6 +95,7 @@ jobs:
COMPUTER_TO_RADIO_DEVICE: "Speakers (VB-Audio Virtual Cable)"
MICROPHONE_TO_COMPUTER_DEVICE: "Line 1 (Virtual Audio Cable)"
COMPUTER_TO_SPEAKER_DEVICE: "Line 1 (Virtual Audio Cable)"
UT_HIDE_WINDOW: "1"
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4

View File

@ -297,7 +297,23 @@ void MainApp::UnitTest_()
if (isRunning) break;
std::this_thread::sleep_for(20ms);
}
// Hide main window temporarily if requested. This is for CI use cases
// where we don't necessarily have access to what the GUI looks like.
wxString envVarName = "UT_HIDE_WINDOW";
wxString envVarVal;
bool hideWindow = false;
if (wxGetEnv(envVarName, &envVarVal))
{
hideWindow = envVarVal == "1";
}
if (hideWindow)
{
CallAfter([&]() {
frame->Hide();
});
}
if (testName == "tx")
{
log_info("Transmitting %d times", utTxAttempts);
@ -392,6 +408,14 @@ void MainApp::UnitTest_()
// Wait a second to make sure we're not doing any more processing
std::this_thread::sleep_for(1000ms);
// Re-show window if hidden
if (hideWindow)
{
CallAfter([&]() {
frame->Show();
});
}
// Fire event to stop FreeDV
log_info("Firing stop");