name: semantic engine (angr) # angr is a large optional dependency, so it stays out of the per-PR matrix: # weekly, on demand, and when the semantic layer itself changes. on: workflow_dispatch: schedule: - cron: "17 3 * * 1" push: branches: [main] paths: - reverify/semantic.py - reverify/tests/test_semantic.py - .github/workflows/angr.yml permissions: contents: read jobs: angr: # windows: the semantic tests use a small system DLL (msimg32.dll) as their fixture runs-on: windows-latest env: PYTHONUTF8: "1" steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 with: python-version: "3.12" cache: pip cache-dependency-path: pyproject.toml - name: Install with angr run: python -m pip install -e ".[angr]" lief capstone - name: Engines in use run: reverify backends - name: Semantic tests (engine-backed) run: python -m unittest -v reverify.tests.test_semantic - name: Full suite run: python -m unittest discover -s reverify/tests -p "test_*.py"