# Memory sanitizer needs to be in its own file because it is slower than other sanitizers.
name: CI Unix Static Sanitized Memory
on:
  push:
  pull_request:
    paths:
      - ".github/actions/**"
      - ".github/workflows/ci-unix-static-sanitized-memory.yml"

permissions:
  contents: read

jobs:
  build-static-sanitized-memory:
    runs-on: ubuntu-latest

    env:
      CC: clang
      CXX: clang++

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: ./.github/actions/setup-linux
        if: runner.os == 'Linux'
        id: setup_linux
        with:
          codec-aom: "LOCAL"
          codec-dav1d: "LOCAL"
          libyuv: "LOCAL"
          extra-cache-key: memory
      - id: cache-hit
        run: echo "hit=${{ (runner.os == 'Linux' && steps.setup_linux.outputs.ext-cache-hit == 'true') || (runner.os == 'macOS' && steps.setup_macos.outputs.ext-cache-hit == 'true') }}" >> "$GITHUB_OUTPUT"

      - name: Build cxx and cxxabi
        run: |
          # clone LLVM
          git clone --depth=1 --branch llvmorg-19.1.7  https://github.com/llvm/llvm-project
          # configure cmake
          cmake -G Ninja -S llvm-project/runtimes -B llvm-project/msan_out \
                  -DCMAKE_BUILD_TYPE=Release \
                  -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
                  -DCMAKE_C_COMPILER=clang \
                  -DCMAKE_CXX_COMPILER=clang++ \
                  -DLLVM_USE_SANITIZER=MemoryWithOrigins \
                  -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
          # build the libraries
          cmake --build llvm-project/msan_out --config Release -- cxx cxxabi unwind
      - name: Set FLAGS for memory sanitizer
        run: |
          echo "CI_CFLAGS=-fsanitize=memory -L${{ github.workspace }}/llvm-project/msan_out/lib -I${{ github.workspace }}/llvm-project/msan_out/include"  >> $GITHUB_ENV
          echo "CI_CXXFLAGS=-fsanitize=memory -stdlib=libc++ -L${{ github.workspace }}/llvm-project/msan_out/lib -I${{ github.workspace }}/llvm-project/msan_out/include -I${{ github.workspace }}/llvm-project/msan_out/include/c++/v1"  >> $GITHUB_ENV
          echo "CI_LDFLAGS=-fsanitize=memory -L${{ github.workspace }}/llvm-project/msan_out/lib -lc++abi"  >> $GITHUB_ENV
          echo "CI_LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{ github.workspace }}/llvm-project/msan_out/lib" >> $GITHUB_ENV

      - name: Build jpeg
        if: ${{ steps.cache-hit.outputs.hit == 'false' }}
        working-directory: ./ext
        run: |
          sed -i -e 's/cmake -G \(.*\)/cmake -G \1 -DWITH_SIMD=OFF/g' libjpeg.cmd
          ./libjpeg.cmd
        env:
          CFLAGS: ${{ env.CI_CFLAGS }}
          CXXFLAGS: ${{ env.CI_CXXFLAGS }}
          LDFLAGS: ${{ env.CI_LDFLAGS }}
          LD_LIBRARY_PATH: ${{ env.CI_LD_LIBRARY_PATH }}

      - name: Build aom
        if: ${{ steps.cache-hit.outputs.hit == 'false' }}
        working-directory: ./ext
        run: |
          sed -i -e 's/cmake -G \(.*\)/cmake -G \1 -DAOM_TARGET_CPU=generic -DSANITIZE=memory/g' aom.cmd
          ./aom.cmd
        env:
          CFLAGS: ${{ env.CI_CFLAGS }}
          CXXFLAGS: ${{ env.CI_CXXFLAGS }}
          LDFLAGS: ${{ env.CI_LDFLAGS }}
          LD_LIBRARY_PATH: ${{ env.CI_LD_LIBRARY_PATH }}

      - name: Build dav1d
        if: ${{ steps.cache-hit.outputs.hit == 'false' }}
        working-directory: ./ext
        run: |
          sed -i -e 's/meson setup \(.*\)/meson setup \1 -Db_sanitize=memory -Db_lundef=false -Denable_asm=false/g' dav1d.cmd
          ./dav1d.cmd
        env:
          CFLAGS: ${{ env.CI_CFLAGS }}
          CXXFLAGS: ${{ env.CI_CXXFLAGS }}
          LIBRARY_PATH: ${{ env.CI_LD_LIBRARY_PATH }}

      - name: Prepare libavif (cmake)
        run: >
          cmake -G Ninja -S . -B build
          -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=OFF
          -DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
          -DAVIF_JPEG=LOCAL -DAVIF_LIBSHARPYUV=LOCAL
          -DAVIF_LIBYUV=LOCAL -DAVIF_ZLIBPNG=LOCAL
          -DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
          -DAVIF_BUILD_TESTS=ON -DAVIF_GTEST=LOCAL
        env:
          CFLAGS: ${{ env.CI_CFLAGS }}
          CXXFLAGS: ${{ env.CI_CXXFLAGS }}
          LDFLAGS: ${{ env.CI_LDFLAGS }}
      - name: Build libavif
        run: cmake --build build --config RelWithDebInfo --parallel 4
      - name: Run AVIF Tests
        working-directory: ./build
        run: ctest -j $(getconf _NPROCESSORS_ONLN) --output-on-failure
        env:
          MSAN_OPTIONS: allocator_may_return_null=1
          LD_LIBRARY_PATH: ${{ env.CI_LD_LIBRARY_PATH }}
