diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 21310ac8f..996e91a47 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false # show all errors for each platform (vs. cancel jobs on error) matrix: - os: [ubuntu-latest, windows-2019, macos-latest] + os: [ubuntu-latest, windows-2022, macos-14] steps: - name: Install Linux Deps @@ -29,6 +29,12 @@ jobs: sudo apt-get update sudo apt install libasound2-dev libcurl4-openssl-dev libx11-dev libxinerama-dev libxext-dev libfreetype6-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev libsamplerate-dev + - name: Set Xcode version + if: runner.os == 'MacOS' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.2' + - name: Get latest CMake uses: lukka/get-cmake@latest diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 7af31fac7..cf7694cc7 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -142,8 +142,11 @@ jobs: shell: bash run: lcov --list coverage.info - - name: Upload Coverage Data + - name: Upload coverage to Codecov if: matrix.run_coverage - working-directory: ${{env.WORK_DIR}} - shell: bash - run: bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports" + uses: codecov/codecov-action@v4 + with: + fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} + files: ${{env.WORK_DIR}}/coverage.info + verbose: true diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index cf3474424..59e7a8ab9 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -4,7 +4,7 @@ include(CPM) CPMAddPackage( NAME juce GITHUB_REPOSITORY juce-framework/juce - GIT_TAG 7.0.10 + GIT_TAG 7.0.12 ) include(AddJUCEModules) diff --git a/tests/plugin_tests/chowdsp_plugin_utils_test/DeferredActionTest.cpp b/tests/plugin_tests/chowdsp_plugin_utils_test/DeferredActionTest.cpp index 4a810c70c..5dd3a2d24 100644 --- a/tests/plugin_tests/chowdsp_plugin_utils_test/DeferredActionTest.cpp +++ b/tests/plugin_tests/chowdsp_plugin_utils_test/DeferredActionTest.cpp @@ -17,6 +17,7 @@ static void deferredCounterIncrementTest (bool fakeAudioThread = false) chowdsp::DeferredAction action; Counter counter; std::atomic refCounter { 0 }; + std::atomic_bool isFinished { false }; juce::Thread::launch ( [&] @@ -29,6 +30,7 @@ static void deferredCounterIncrementTest (bool fakeAudioThread = false) refCounter.fetch_add (1); juce::Thread::sleep (12); } + isFinished.store (true); }); for (int i = 0; i < 25; ++i) @@ -39,16 +41,13 @@ static void deferredCounterIncrementTest (bool fakeAudioThread = false) juce::MessageManager::getInstance()->runDispatchLoopUntil (15); } - juce::MessageManager::getInstance()->runDispatchLoopUntil (500); // clear up any remaining async updates + while (! isFinished.load()) + juce::MessageManager::getInstance()->runDispatchLoopUntil (500); // clear up any remaining async updates REQUIRE_MESSAGE (counter.count == refCounter.load(), "Final count is incorrect!"); } -#if JUCE_WINDOWS -TEST_CASE ("Deferred Action Test", "[plugin][utilities][!mayfail]") -#else TEST_CASE ("Deferred Action Test", "[plugin][utilities]") -#endif { SECTION ("Deferred Action Test") {