diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 496211d..c1f7dd0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -63,7 +63,31 @@ jobs: - name: Build shared mrcal_jni # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/cmake_build --target mrcal_jni + shell: bash + run: cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni + + - name: Build mrcal_jni_test + if: runner.os != 'Windows' + shell: bash + run: cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni_test + + - name: Run mrcal_jni_test + if: runner.os != 'Windows' + shell: bash + # On arm64, run under QEMU to catch illegal instructions + run: | + if [[ "${{ matrix.arch-name }}" == "linuxarm64" ]]; then + sudo apt-get update + sudo apt-get install -y qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + chmod +x "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + qemu-aarch64 \ + -cpu cortex-a55 \ + -L /usr/aarch64-linux-gnu \ + -E LD_LIBRARY_PATH="${{ github.workspace }}/cmake_build/lib" \ + "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + else + "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + fi - name: Gradle build # Build your program with the given configuration diff --git a/src/mrcal_test.cpp b/src/mrcal_test.cpp index fc6ac72..e932f9a 100644 --- a/src/mrcal_test.cpp +++ b/src/mrcal_test.cpp @@ -221,7 +221,7 @@ int main() { double calobjectSpacing(0.0254); cv::Size sampleRes{60, 40}; - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 1; i++) { auto start = std::chrono::high_resolution_clock::now(); auto ret = compute_uncertainty(observations_board_cast, intrinsics, rt_ref_cast, warp, imagerSize, calobjectSize,