diff --git a/.github/workflows/extended-tests.yml b/.github/workflows/extended-tests.yml new file mode 100644 index 000000000..e18e212ef --- /dev/null +++ b/.github/workflows/extended-tests.yml @@ -0,0 +1,22 @@ +name: Extended Tests + + +on: + workflow_dispatch: + +jobs: + build: + strategy: + fail-fast: false + matrix: + variants: + - { os: fedora, version: 41 } + - { os: debian, version: bookworm } + + name: "Tests on ${{ matrix.variants }}" + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - run: | + docker run -v ${PWD}:/gef ${{ matrix.variants.os }}:${{ matrix.variants.version }} "bash /gef/tests/extended/${{ matrix.variants.os }}.sh" diff --git a/tests/extended/debian.sh b/tests/extended/debian.sh new file mode 100644 index 000000000..5cb1dfe88 --- /dev/null +++ b/tests/extended/debian.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e +# set -x +# docker run -v /path/to/gef:/gef debian:bookworm "bash /gef/tests/extended/debian.sh" +apt update -qq +apt install -qq -y gdb-multiarch cmake gcc-multilib python3 python3-pip procps file elfutils binutils cmake gcc g++ gdbserver qemu-user locales +rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +export LANG=en_US.utf8 +export LC_ALL=en_US.utf8 + +cd /gef +export PY_VER=`gdb-multiarch -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` +echo Using Python ${PY_VER} +python${PY_VER} -m pip install --user --upgrade -r tests/requirements.txt -r docs/requirements.txt --break-system-packages +make -C tests/binaries +python${PY_VER} -m pytest -v -m "not benchmark" tests/ diff --git a/tests/extended/fedora.sh b/tests/extended/fedora.sh new file mode 100644 index 000000000..27ca1c129 --- /dev/null +++ b/tests/extended/fedora.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +# set -x +# docker run -v /path/to/gef:/gef fedora:41 "bash /gef/tests/extended/fedora.sh" +dnf install -y gdb cmake gcc python3 python3-pip procps file elfutils binutils cmake gcc g++ gdbserver qemu-user +export LANG=en_US.utf8 +export LC_ALL=en_US.utf8 + +cd /gef +alias gdb-multiarch=gdb +export PY_VER=`gdb-multiarch -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` +echo Using Python ${PY_VER} +python${PY_VER} -m pip install --user --upgrade -r tests/requirements.txt -r docs/requirements.txt --break-system-packages +make -C tests/binaries +python${PY_VER} -m pytest -v -m "not benchmark" tests/