Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
64 changes: 64 additions & 0 deletions .github/workflows/fusil.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: fusil.yml
on:
pull_request:

jobs:
fuzz:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version:
- 3.14t

steps:
- uses: actions/checkout@v4
- name: Install pyenv
run: |
export PYENV_ROOT="./.pyenv"
export PYENV_BIN="$PYENV_ROOT/bin"
export PYENV_SHIMS="$PYENV_ROOT/shims"
# export PYENV_CACHE="$PYENV_ROOT/cache"
git clone --single-branch --depth=1 --no-tags \
https://github.com/pyenv/pyenv.git "./.pyenv"
# mkdir -p "$PYENV_CACHE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "PYENV_BIN=$PYENV_BIN" >> $GITHUB_ENV
echo "PYENV_SHIMS=$PYENV_SHIMS" >> $GITHUB_ENV
# echo "PYENV_CACHE=$PYENV_CACHE" >> $GITHUB_ENV
- name: build python with sanitizers
run: |
export CONFIGURE_OPTS="--disable-gil --with-pydebug --with-address-sanitizer --without-pymalloc --without-system-libmpdec --config-cache"
./.pyenv/bin/pyenv install --verbose --keep ${{ matrix.python-version }}
./.pyenv/bin/pyenv global ${{ matrix.python-version }}
export CUSTOM_PYTHON="$(./.pyenv/bin/pyenv which python)"
echo "CUSTOM_PYTHON=$CUSTOM_PYTHON" >> $GITHUB_ENV
- name: install dependencies
run: |
# CMake must be able to find the pyenv python installation
# before the system's python.
export PATH="$(dirname $CUSTOM_PYTHON)":$PATH
"$CUSTOM_PYTHON" -m pip install \
python-ptrace \
git+https://github.com/devdanzin/fusil.git \
".[dev]"
- name: prepare runs directory
run: |
mkdir -p -m 777 ./fusil/runs
- name: run fusil
run: |
export ASAN_OPTIONS=detect_leaks=0
export PYTHON_GIL=0
bash -c '"$CUSTOM_PYTHON" -m fusil-python-threaded \
--python="$CUSTOM_PYTHON" \
--force-unsafe \
-v \
--success=200 \
--fast \
--test-private \
--packages=cereggii \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I forgot to update you on the command that actually worked: we need --modules=cereggii too, otherwise fusil will look for all modules in stdlib besides cereggii.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did I do it right? both are needed, correct?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's right.

--modules=cereggii \
--no-async \
--no-numpy \
--no-tstrings'
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- main
pull_request:
# pull_request:

jobs:
lint:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- main
pull_request:
# pull_request:

jobs:
test:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tsan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- main
pull_request:
# pull_request:

jobs:
tsan:
Expand Down
Loading