native-executor 0.7.0

Platform-native async task executor
Documentation
name: Test

on:
    workflow_call:

env:
    CARGO_TERM_COLOR: always
    RUSTFLAGS: -D warnings

jobs:
    test:
        name: ${{ matrix.name }}
        runs-on: ${{ matrix.os }}
        strategy:
            fail-fast: false
            matrix:
                include:
                    - name: Linux
                      os: ubuntu-latest
                      script: cargo test --verbose
                    - name: macOS
                      os: macos-latest
                      script: bash scripts/test_macos.sh
                    - name: iOS (build only)
                      os: macos-latest
                      targets: aarch64-apple-ios,x86_64-apple-ios
                      script: |
                          cargo build --target aarch64-apple-ios
                          cargo build --target x86_64-apple-ios
        steps:
            - uses: actions/checkout@v4
            - uses: dtolnay/rust-toolchain@stable
              with:
                  targets: ${{ matrix.targets }}
            - uses: Swatinem/rust-cache@v2
              with:
                  key: ${{ matrix.name }}
            - run: ${{ matrix.script }}

    test-wasm:
        name: WASM
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - uses: dtolnay/rust-toolchain@nightly
              with:
                  targets: wasm32-unknown-unknown
            - uses: Swatinem/rust-cache@v2
            - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
            - run: bash scripts/test_wasm.sh

    test-android:
        name: Android
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - uses: dtolnay/rust-toolchain@nightly
              with:
                  targets: x86_64-linux-android
            - uses: actions/setup-java@v4
              with:
                  distribution: temurin
                  java-version: "17"
            - uses: android-actions/setup-android@v3
            - uses: Swatinem/rust-cache@v2
            - name: Install NDK
              run: |
                  sdkmanager --install "ndk;26.1.10909125"
                  echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.1.10909125" >> $GITHUB_ENV
            - name: Run tests
              uses: reactivecircus/android-emulator-runner@v2
              with:
                  api-level: 31
                  arch: x86_64
                  script: TARGET_ARCH=x86_64-linux-android bash scripts/test_android.sh