angr/tests
Fish 0b45791efc
AILSimplifier: Don't fold calls with write side effects. (#6487)
_fold_call_exprs folds a call whose return value is used exactly once
into that use site and removes the original call statement. This is
incorrect when the call may write via a pointer argument: when they have
"extra_defs" operands, e.g. a call that fills a stack buffer. Folding
moves the call and its side-effect write to the return-value use site,
leaving every other read of the written-through vvar referencing a value
that is now never written.
2026-06-09 14:53:46 -07:00
..
ailment Decompiler: Use VariableMap to track Atom-Variable mapping. (#6470) 2026-06-05 16:28:58 -07:00
analyses AILSimplifier: Don't fold calls with write side effects. (#6487) 2026-06-09 14:53:46 -07:00
angrdb Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
engines Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
exploration_techniques Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
factory Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
gui [pre-commit.ci] pre-commit autoupdate (#6025) 2026-01-19 13:37:06 -07:00
knowledge_plugins Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
llm Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
manual Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
mcp Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
misc Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
perf Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
procedures Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
regression Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
serialization Fix many delayed imports (#6458) 2026-06-04 11:33:16 -07:00
sim Decompiler: Use VariableMap to track Atom-Variable mapping. (#6470) 2026-06-05 16:28:58 -07:00
simos Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
state_plugins Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
storage Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
types Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
utils Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
__init__.py tests: Structure test files into directories 2023-09-08 16:05:33 -07:00
common.py Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
README.md Update test/README.md with current tools (#3774) 2023-02-01 18:48:16 -07:00
test_calling_conventions.py Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00
test_cli.py Add Rust decompiler support to CLI (#6421) 2026-05-19 23:00:07 -07:00
test_fuzzer.py Fuzzer infrastructure: engine caching, custom breakpoints, icicle bump (#6346) 2026-04-15 15:22:31 -07:00
test_load_shellcode.py Enable ruff isort rule (#6452) 2026-06-02 14:48:07 -07:00

Tests

Running tests

These tests require the binaries repository, clone it in the folder where angr was cloned.

git clone https://github.com/angr/binaries

nose2 or pytest may be used to run tests. Each tool can be installed with pip:

pip install nose2
pip install pytest

To run the tests with nose2, from the root of the repository, run:

nose2 -s tests

Or if using pytest, simply run:

pytest

Writing new tests

New tests should be written using unittest, part of Python's standard library. For more information about unittest, see https://docs.python.org/3/library/unittest.html. While we prefer nose2 and pytest for running tests, avoid using nose2 or pytest features in tests themselves, to avoid dependency on a specific runner.