Skip to content

Refactor pta

Refactor pta #2681

Workflow file for this run

name: svf-build
# Triggers the workflow on push or pull request events
on: [push, pull_request]
# Customize the env variable
env:
SVF_CTIR: 1
SVF_Z3: 1
SVF_DIR: $GITHUB_WORKSPACE
jobs:
build:
runs-on: ${{ matrix.os }}
env:
XCODE_VERSION: '15.3.0'
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: [ubuntu-latest]
sanitizer: address
steps:
# checkout the repo
- uses: actions/checkout@v2
# setup the environment
- name: mac-setup
if: runner.os == 'macOS'
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: mac-setup-workaround
if: runner.os == 'macOS'
run: |
ln -sfn /Applications/Xcode_${{ env.XCODE_VERSION }}.app /Applications/Xcode.app
- name: ubuntu-setup
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install cmake gcc g++ nodejs doxygen graphviz lcov libncurses5-dev libtinfo5 libzstd-dev
# build-svf
- name: build-svf
run: |
cd $GITHUB_WORKSPACE
echo $(pwd)
if [ "${{matrix.sanitizer}}" != "" ]; then export SVF_SANITIZER="${{matrix.sanitizer}}"; fi
if [ "$RUNNER_OS" == "Linux" ] && [ "${{matrix.sanitizer}}" == "" ]; then export SVF_COVERAGE=1; fi
git clone "https://github.com/SVF-tools/Test-Suite.git";
source ${{github.workspace}}/build.sh
- name: ctest objtype inference
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R objtype -VV
- name: ctest wpa
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R wpa_tests -VV
- name: ctest dvf and mta
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R dvf_tests -VV
- name: ctest andersen differential analysis
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R diff_tests-ander -VV
- name: ctest flow-sensitive differential analysis
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R diff_tests-fs -VV
- name: ctest Andersen file-write-read
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R diff_tests-wr-ander -VV
- name: ctest mem_leak
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R mem_leak -VV
- name: ctest double_free
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R double_free -VV
- name: ctest ae_symabs
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R symabs -VV
- name: ctest ae_assert
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R ae_assert_test -VV
- name: ctest ae_overflow
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R ae_overflow_test -VV
- name: ctest cfl_tests
working-directory: ${{github.workspace}}/Release-build
run:
ctest -R cfl_tests -VV
- name: ctest performance tests on big cruxbc with file system diff tests
working-directory: ${{github.workspace}}/Release-build
if: runner.os == 'Linux' && matrix.sanitizer != 'address'
run:
ctest -R diff-perf-cruxbc-big -VV
- name: ctest performance tests on small cruxbc with file system diff tests
working-directory: ${{github.workspace}}/Release-build
if: runner.os == 'Linux'
run:
ctest -R diff-perf-cruxbc-small -VV
- name: create-coverage-report-and-remove-system-files
working-directory: ${{github.workspace}}/Release-build
if: runner.os == 'Linux' && matrix.sanitizer == ''
run: |
lcov --capture --directory ./ --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info
lcov --remove coverage.info '${{github.workspace}}/z3.obj/*' --output-file coverage.info
lcov --remove coverage.info '${{github.workspace}}/llvm-*.obj/*' --output-file coverage.info
lcov --remove coverage.info '${{github.workspace}}/svf/include/FastCluster/*' --output-file coverage.info
lcov --remove coverage.info '${{github.workspace}}/svf/lib/FastCluster/*' --output-file coverage.info
- name: upload-coverage
if: runner.os == 'Linux'
uses: codecov/codecov-action@v4
with:
files: coverage.info
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}