Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

9.3 devel, de-mono-repo #194

Open
wants to merge 56 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b38c794
Bump version to 9.3.0.dev0
twizmwazin Dec 13, 2023
22efbe6
Merge setup.cfg into pyproject.toml
twizmwazin Dec 14, 2023
96f5f5f
Redo CI
twizmwazin Dec 14, 2023
2cd0562
Fix some CI failures
twizmwazin Dec 14, 2023
01e0dd2
Merge ecosystem tests into main ci yml
twizmwazin Dec 14, 2023
746cf77
Print durations
twizmwazin Dec 14, 2023
bd983df
Add temp workaround
twizmwazin Dec 14, 2023
5036a48
Disable angr build isolation
twizmwazin Dec 14, 2023
6dcb30c
Ensure setuptools is up to date
twizmwazin Dec 14, 2023
6ca6714
Try a different hack
twizmwazin Dec 14, 2023
c9bb655
Reenable build isolation
twizmwazin Dec 14, 2023
e534968
Remove colorguard
twizmwazin Dec 14, 2023
b879b34
Fix povsim install
twizmwazin Dec 14, 2023
ca44f4c
Use github.ref instead of github.sha
twizmwazin Dec 14, 2023
88f27f6
Fetch ref before installing
twizmwazin Dec 14, 2023
f500f6e
Try a different way
twizmwazin Dec 14, 2023
10b2229
Set fetch depth to 0
twizmwazin Dec 14, 2023
06e2b39
Remove dir specifiers in pytest invocation
twizmwazin Dec 14, 2023
3ee648c
Install libegl1
twizmwazin Dec 14, 2023
a44a947
Add colorguard for rex test
twizmwazin Dec 14, 2023
516f759
Show failed and errored tests in report
twizmwazin Dec 14, 2023
4ce60c0
Re-add repo dirs to pytest invocation
twizmwazin Dec 14, 2023
e4f22fc
Remove line break
twizmwazin Dec 14, 2023
e3c7416
Try just one path
twizmwazin Dec 14, 2023
81adc4f
Install jython with -e
twizmwazin Dec 14, 2023
f7f673f
Add a second dir
twizmwazin Dec 14, 2023
22e266f
Add some more dirs
twizmwazin Dec 14, 2023
712aed6
Enable debug log level
twizmwazin Dec 18, 2023
aa9c746
Use custom angr branch
twizmwazin Dec 18, 2023
c32b9b7
Remove angr-platforms for now
twizmwazin Dec 18, 2023
912429a
Clean up after angr-platforms debugging
twizmwazin Dec 18, 2023
d3243eb
Specify ubuntu version and disable debug logging
twizmwazin Dec 18, 2023
c9a2702
Reset angr-platforms branch
twizmwazin Dec 19, 2023
1b4cf4a
Add a wrapper to limit memory
twizmwazin Dec 19, 2023
41d0a19
Remove extra repos
twizmwazin Dec 20, 2023
2df3424
Increase memory limit
twizmwazin Dec 20, 2023
2c4839f
Try ubuntu 20.04
twizmwazin Dec 20, 2023
0d80127
Revert "Increase memory limit"
twizmwazin Dec 20, 2023
018841d
Specify smaller heap size for pysoot
twizmwazin Dec 20, 2023
83238e7
Specify heap size in bytes
twizmwazin Dec 20, 2023
94ae04f
Use custom angr branch
twizmwazin Dec 20, 2023
a469f15
Run failing test case seperatly
twizmwazin Dec 20, 2023
261fe6a
Use unicorn dev branch
twizmwazin Dec 20, 2023
eba5ed8
Use actual dev branch
twizmwazin Dec 20, 2023
b017905
Disable parallelization
twizmwazin Dec 21, 2023
007eef0
Double the runners
twizmwazin Dec 21, 2023
3f512b6
Use the xdist plugin but don't actually parallize
twizmwazin Dec 21, 2023
c99b67a
Add setup-java step
twizmwazin Jan 8, 2024
87e20a0
Use new pysoot version
twizmwazin Jan 10, 2024
37f3e99
Use shallow clones
twizmwazin Jan 12, 2024
8e6e399
Upload coredumps
twizmwazin Jan 12, 2024
c8f6906
Remove the xdist config
twizmwazin Jan 13, 2024
ea2b05d
Disable output capturing
twizmwazin Jan 13, 2024
28b8b3c
Merge branch 'master' into 9.3-devel
twizmwazin Jun 30, 2024
c565343
Remove python 3.8 references
twizmwazin Jun 30, 2024
4686053
Quote 3.10
twizmwazin Jun 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 156 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,160 @@ on:
workflow_dispatch:

jobs:
ci:
uses: angr/ci-settings/.github/workflows/angr-ci.yml@master
windows:
uses: ./.github/workflows/windows.yml
macos:
uses: ./.github/workflows/macos.yml
test:
strategy:
matrix:
os: [ubuntu-22.04, macos-12, windows-2022]
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- run: pip install .[testing]
name: Install
- run: pytest --durations 10
name: Run pytest

docs:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install
run: pip install .[docs]
- name: Build docs
run: cd docs && make html
- name: Build coverage
run: cd docs && make coverage
- name: Test coverage
run: |
if [ -s docs/_build/coverage/python.txt ]; then
echo "Doc coverage is missing for the for:"
cat docs/_build/coverage/python.txt
exit 1
fi

test-ecosystem:
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
name: Test Ecosystem
runs-on: ubuntu-20.04
steps:
- run: sudo apt update; sudo apt install -y libegl1

- name: Setup python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Setup java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '8'

- uses: actions/checkout@v3
with:
fetch-depth: 0
path: archinfo
- run: git -C archinfo checkout master # FIXME: temporary workaround for == versions
- run: pip install ./archinfo

# Checkout and install all the ecosystem packages
# Core packages
# pyvex
- run: git clone --depth 1 --recursive https://github.com/angr/pyvex.git
- run: pip install ./pyvex
# cle
- run: git clone --depth 1 https://github.com/angr/cle.git
- run: pip install ./cle
# TODO: remove this once angr installs claripy directly
- run: git clone --depth 1 https://github.com/angr/claripy.git
- run: pip install ./claripy
# TODO: remove this once angr installs ailment directly
- run: git clone --depth 1 https://github.com/angr/ailment.git
- run: pip install ./ailment
# angr
- run: git clone --depth 1 https://github.com/angr/angr.git
- run: sed -i 's/pyvex[^"]*/pyvex/g' angr/pyproject.toml # FIXME: temporary workaround for == versions
- run: pip install ./angr
# angr management
- run: git clone --depth 1 https://github.com/angr/angr-management.git
- run: pip install ./angr-management
# binaries
- run: git clone --depth 1 https://github.com/angr/binaries.git


# Extended packages
# angr-platforms
- run: git clone --depth 1 https://github.com/angr/angr-platforms.git
- run: pip install ./angr-platforms
# pysoot
- run: git clone --depth 1 https://github.com/angr/pysoot.git -b refactor/jpype
- run: pip install ./pysoot
# archr, dep of rex
- run: git clone --depth 1 https://github.com/angr/archr.git
- run: pip install ./archr
# angrop
- run: git clone --depth 1 https://github.com/angr/angrop.git
- run: pip install ./angrop
# tracer, dep of rex
- run: git clone --depth 1 https://github.com/angr/tracer.git
- run: pip install ./tracer
# compilerex, patcherex
- run: git clone --depth 1 https://github.com/mechaphish/compilerex.git
- run: pip install ./compilerex
# povsim, dep of rex
- run: git clone --depth 1 https://github.com/mechaphish/povsim.git
- run: pip install ./povsim
# rex
- run: git clone --depth 1 https://github.com/angr/rex.git
- run: pip install ./rex
# colorguard, test dep of rex
- run: git clone --depth 1 https://github.com/mechaphish/colorguard.git
- run: pip install ./colorguard
# driller
- run: git clone --depth 1 https://github.com/shellphish/driller.git
- run: pip install ./driller
# heaphopper
- run: git clone --depth 1 https://github.com/angr/heaphopper.git
- run: pip install ./heaphopper
# patcherex
- run: git clone --depth 1 https://github.com/angr/patcherex.git
- run: pip install ./patcherex

# Reinstall archinfo in case it was overwritten by one of the ecosystem packages
- run: git -C archinfo checkout -
- run: pip install ./archinfo[testing]

- name: Set cores to get stored in /cores
run: |
sudo mkdir /cores
sudo chmod 777 /cores
# Core filenames will be of the form executable.pid.timestamp:
sudo bash -c 'echo "/cores/%e.%p.%t" > /proc/sys/kernel/core_pattern'

- name: Run pytest
run: |
ulimit -c unlimited
ulimit -v 6291456
pytest -rfEs --capture=no --log-cli-level=INFO --durations 10 --splits 10 --group ${{matrix.group}} cle angr
# angr-platforms pysoot angrop rex driller heaphopper patcherex
echo "Return code: $?"
env:
SKIP_SLOW_TESTS: 1
PYSOOT_HEAP_SIZE: 2147483648 # 2GB

- uses: actions/upload-artifact@v3
if: ${{ failure() }} # Run only if something went wrong
with:
name: cores
path: /cores
13 changes: 0 additions & 13 deletions .github/workflows/nightly-ci.yml

This file was deleted.

2 changes: 1 addition & 1 deletion archinfo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
It is useful for cross-architecture tools (such as pyvex).
"""

__version__ = "9.2.109.dev0"
__version__ = "9.3.0.dev0"


from .arch import (
Expand Down
38 changes: 38 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,44 @@
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "archinfo"
description = "Classes with architecture-specific information useful to other projects."
license = {text = "BSD-2-Clause"}
classifiers = [
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
urls = {Homepage = "https://github.com/angr/archinfo"}
requires-python = ">=3.10"
dependencies = ["backports.strenum>=1.2.8;python_version<'3.11'"]
dynamic = ["version"]

[project.readme]
file = "README.md"
content-type = "text/markdown"

[project.optional-dependencies]
docs = [
"furo",
"myst-parser",
"sphinx",
"sphinx-autodoc-typehints",
]
pcode = ["pypcode>=1.1"]
testing = ["pytest", "pytest-xdist", "pytest-split"]

[tool.setuptools]
license-files = ["LICENSE"]
package-data = { archinfo = ["py.typed"] }

[tool.setuptools.dynamic]
version = {attr = "archinfo.__version__"}

[tool.black]
line-length = 120
target-version = ['py310']
Expand Down
Loading