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

Test Python version >= 3.10 in CI and fix tests on Python 3.12 #2486

Merged
merged 12 commits into from
Oct 12, 2024

Conversation

peace-maker
Copy link
Member

@peace-maker peace-maker commented Oct 10, 2024

Some workflows were using 3.8 still. Start testing on 3.12 too.

ubuntu-latest now points to 24.04 which requires the --break-system-packages dance when installing pip packages globally. Fix installing rpyc in CI too.

This revealed a bunch of regressions in the tests for Python 3.12.

@peace-maker peace-maker force-pushed the bump_ci_python_version branch 10 times, most recently from d931461 to bd0a982 Compare October 11, 2024 21:51
Some workflows were using 3.8 still. Start testing on 3.12 too.
`ubuntu-latest` now points to 24.04 which requires the --break-system-packages dance.
Ubuntu 24.04 dropped the python2.7 packages.
@peace-maker peace-maker changed the title Bump tested python version to >= 3.10 in CI Test Python version >= 3.10 in CI and fix tests on Python 3.12 Oct 11, 2024
It used to print "; 0x4" but changed to "@ 0x4" in some version.
Ubuntu 24.04 seemed to have switched the qemu-user --help output to show `/usr/gnemul/qemu-$ARCH` instead of `/etc/qemu-binfmt`. Ignore the actual path in the test.
The alphabet was using `\` escape sequences badly.

<stdin>:1: SyntaxWarning: invalid escape sequence '\]'
qemu throws a SIGBUS error when the shellcode tries to access unaligned memory since some version. Align the "stack" properly.
The __repr__ output of OrderedDict was changed to look like ordinary {} dicts.
There is a 151 RESUME opcode in Python 3.12 now.
Python 3.11 added a sanity check to argparse to prevent registering the same subparser multiple times.

argparse.ArgumentError: argument command: conflicting subparser: cyclic

Avoid importing the command twice.
`python -m pwnlib.commandline.cyclic` failed on Python 3.11 triggered in CI when running the commandline tools while collecting coverage.
@peace-maker peace-maker merged commit f28d3eb into Gallopsled:stable Oct 12, 2024
12 of 13 checks passed
@peace-maker peace-maker deleted the bump_ci_python_version branch October 12, 2024 15:48
peace-maker added a commit to peace-maker/pwntools that referenced this pull request Oct 26, 2024
…psled#2486)

* Bump tested python version to >= 3.10

Some workflows were using 3.8 still. Start testing on 3.12 too.

* Fix installing rpyc in CI on ubuntu 24.04

`ubuntu-latest` now points to 24.04 which requires the --break-system-packages dance.

* Test Python 2 on Ubuntu 22.04

Ubuntu 24.04 dropped the python2.7 packages.

* Test on android-34

* Fix ARM binutils disassembly output test expectation

It used to print "; 0x4" but changed to "@ 0x4" in some version.

* Skip QEMU LD_PREFIX path test

Ubuntu 24.04 seemed to have switched the qemu-user --help output to show `/usr/gnemul/qemu-$ARCH` instead of `/etc/qemu-binfmt`. Ignore the actual path in the test.

* Fix x86 ascii shellcode encoder test

The alphabet was using `\` escape sequences badly.

<stdin>:1: SyntaxWarning: invalid escape sequence '\]'

* Fix mips xor encoder unaligned memory access

qemu throws a SIGBUS error when the shellcode tries to access unaligned memory since some version. Align the "stack" properly.

* Fix util.lists.partition test output on Python 3.12

The __repr__ output of OrderedDict was changed to look like ordinary {} dicts.

* Fix safeeval test on Python 3.12

There is a 151 RESUME opcode in Python 3.12 now.

* Fix registering commandline subparsers multiple times for Python 3.11

Python 3.11 added a sanity check to argparse to prevent registering the same subparser multiple times.

argparse.ArgumentError: argument command: conflicting subparser: cyclic

Avoid importing the command twice.
`python -m pwnlib.commandline.cyclic` failed on Python 3.11 triggered in CI when running the commandline tools while collecting coverage.

* Fix pip cache in CI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant