test(native): host CMake build + CI for native C++ engine tests (#78) #1
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Native tests | |
| # Builds and runs the native C++ engine unit tests (app/src/main/jni/tests) on a plain Linux | |
| # host via the standalone CMake build (jni/CMakeLists.txt) — no AOSP platform tree needed. This | |
| # covers the dictionary/suggest/geometry engine that the JVM/Robolectric suite cannot reach. | |
| on: | |
| push: | |
| branches: [dev] | |
| paths: ['app/src/main/jni/**'] | |
| pull_request: | |
| branches: [dev, main] | |
| paths: ['app/src/main/jni/**'] | |
| jobs: | |
| native-host-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # find_package(JNI) needs JDK headers (jni.h + linux/jni_md.h); setup-java sets JAVA_HOME. | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| - name: Install build tools | |
| run: sudo apt-get update && sudo apt-get install -y cmake g++ | |
| - name: Configure | |
| run: cmake -S app/src/main/jni -B build-host-tests -DCMAKE_BUILD_TYPE=Release | |
| - name: Build native tests | |
| run: cmake --build build-host-tests -j"$(nproc)" | |
| - name: Run native unit tests | |
| # FormatUtilsTest.TestDetectFormatVersion is quarantined: a host-toolchain anomaly in code | |
| # that works on-device (the suite had never run in CI before). Tracked in #80. | |
| run: ctest --test-dir build-host-tests --output-on-failure -E 'FormatUtilsTest\.TestDetectFormatVersion' |