name: C/C++ Sanitizer

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  job1:
    name: adress-sanitizer
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: lukka/get-cmake@latest    
    - uses: lukka/set-shell-env@v1
      with:
        CXX: clang++
        CC: clang
    
    - name: configure and build
      uses: lukka/run-cmake@v3
      with:
        cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
        cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
        cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Debug -DASSIMP_ASAN=ON'
        buildWithCMakeArgs: '-- -v'
        buildDirectory: '${{ github.workspace }}/build/'
    
    - name: test
      run: cd build/bin && ./unit
      shell: bash

  job2:
    name: undefined-behavior-sanitizer
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: lukka/get-cmake@latest    
    - uses: lukka/set-shell-env@v1
      with:
        CXX: clang++
        CC: clang
    
    - name: configure and build
      uses: lukka/run-cmake@v2
      with:
        cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
        cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
        cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Debug -DASSIMP_UBSAN=ON'
        buildWithCMakeArgs: '-- -v'
        buildDirectory: '${{ github.workspace }}/build/'
    
    - name: test
      run: cd build/bin && ./unit
      shell: bash