Skip to content

Run unit tests in Android CI pipeline - #1639

Merged
derselbst merged 75 commits into
masterfrom
copilot/fix-aac6dbca-def2-4626-b3f8-b6aaf55732a6
Sep 27, 2026
Merged

derselbst merged 75 commits into
masterfrom
copilot/fix-aac6dbca-def2-4626-b3f8-b6aaf55732a6

Conversation

Copilot AI commented Aug 30, 2025 •

Copy link
Copy Markdown
Contributor

Resolves #912 by implementing a new Android testing approach that eliminates the Gradle dependency and introduces a new emulator-based testing system that builds and executes individual test executables directly in the Android emulator via ADB. This is achieved by a new custom shell script run-android-tests.sh and an updated CI pipeline to install the required Android emulator image. Additionally, required testdata scattered across the repo (/sf2, /test) are now staged in a dedicated test-directory, allowing them to be easily picked up and pushed over to the Android emulator.

Benefits

  • ✅ No Gradle dependency: Pure CMake + ADB approach
  • ✅ Individual test files: Each test remains in its own C source file
  • ✅ Better debugging: Individual test failures are isolated and easier to troubleshoot
  • ✅ Maintainable: No function name mangling or test merging required

Caveats

  • Unit tests are not executed on ARM and AARCH64 architectures, as this would require expensive software emulation, which takes hours to even only boot the emulator image...
  • The legacy unmaintained Gradle-based approach has been removed.

Co-Authored by Claude Sonnet 4.6 and Qwen 3.8.

derselbst added 30 commits June 13, 2021 14:11
@derselbst

derselbst commented Sep 19, 2026 •

Copy link
Copy Markdown
Member

Current status: Rebased against recent master. Got the android emulator up and running. Unit tests are running as well on x86. Disabled tests to run on arm and aarch64, as it's not supported by qemu2. Tests requiring test data are currently still failing. TODOs: Fix those tests. And stop duplicating the list of unit tests using the ADD_FLUID_ANDROID_TEST cmake command.

@derselbst derselbst changed the title Replace Gradle-based Android testing with individual emulator executables Run unit tests in Android CI pipeline Sep 27, 2026
@sonarqubecloud

Copy link
Copy Markdown

@derselbst
derselbst marked this pull request as ready for review September 27, 2026 12:36
@derselbst
derselbst merged commit 1a6132a into master Sep 27, 2026
120 of 121 checks passed
@derselbst
derselbst deleted the copilot/fix-aac6dbca-def2-4626-b3f8-b6aaf55732a6 branch September 27, 2026 13:06
@derselbst derselbst added this to the 2.6 milestone Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Android testing setup

2 participants