Files
RustPython/extra_tests
youknowdot e09846b4eb Fix bytearray membership racing with resizing (#9091)
* Fix bytearray membership racing with resizing

Search exact bytes and int needles under the data read lock instead of
taking a temporary export. This prevents a concurrent slice replacement
from receiving BufferError for a callback-free membership operation.

Preserve export protection for generic index/buffer callbacks and actual
memoryviews. Add Python coverage for these contracts.

AI assistance: Codex/OpenAI diagnosed the race, implemented and reviewed
the patch and regression snippet, and ran the reported validation. The
runtime did not expose an exact model version.

Assisted-by: Codex:model-version-unavailable

* Handle bool needles and consolidate bytearray regression coverage

Include exact builtin bool in the callback-free integer membership path.
Keep int subclasses and generic conversion paths under export protection.
Move this PR's regression coverage into the existing bytearray snippet
and cover True/False membership as requested in review.

AI assistance: Codex/OpenAI implemented and independently reviewed the
review follow-up and ran the reported validation. The runtime did not
expose an exact model version.

Assisted-by: Codex:model-version-unavailable
2026-10-13 05:19:27 +00:00
..
2022-07-17 03:25:34 +09:00
2025-12-12 22:46:39 +09:00

Test snippets

This directory contains two sets of test snippets which can be run in Python. The snippets/ directory contains functional tests, and the benchmarks/ directory contains snippets for use in benchmarking RustPython's performance.

Setup

Our testing depends on pytest, which you can install using pip.

Running

Simply run pytest -v in this directory, and the tests should run (and hopefully pass). If it hangs for a long time, that's because it's building RustPython in release mode, which should take less time than it would to run every test snippet with RustPython compiled in debug mode.