pyppmd provides classes and functions for compressing and decompressing text data, using PPM (Prediction by partial matching) compression algorithm variation H and I.2. It provide an API similar to Python's zlib/bz2/lzma modules.
Describe the bug
Decompression on 32bit python on Windows causes access violation
Related issue
86
To Reproduce
Run tox test on 32bit python on windows
Expected behavior
It should be no exception
Environment (please complete the following information):
OS: Windows Server 2022
Python 3.7 x86
project version: HEAD on main
Test data(please attach in the report):
tests/test_fuzzer.py::test_ppmd8_fuzzer Windows fatal exception: access violation
```
GLOB sdist-make: D:\a\pyppmd\pyppmd\setup.py
py37 create: D:\a\pyppmd\pyppmd\.tox\py37
tox: py37
py37 inst: D:\a\pyppmd\pyppmd\.tox\.tmp\package\1\pyppmd-0.1.dev31.zip
py37 installed: atomicwrites==1.4.0,attrs==21.4.0,colorama==0.4.4,coverage==6.3.2,hypothesis==6.39.3,importlib-metadata==4.11.2,iniconfig==1.1.1,packaging==21.3,pluggy==1.0.0,py==1.11.0,py-cpuinfo==8.0.0,pyparsing==3.0.7,pyppmd @ file:///D:/a/pyppmd/pyppmd/.tox/.tmp/package/1/pyppmd-0.1.dev31.zip,pytest==7.0.1,pytest-benchmark==3.4.1,pytest-cov==3.0.0,pytest-timeout==2.1.0,sortedcontainers==2.4.0,tomli==2.0.1,typing_extensions==4.1.1,zipp==3.7.0
py37 run-test-pre: PYTHONHASHSEED='125'
py37 run-test: commands[0] | python -m pytest -vv -s
============================= test session starts =============================
platform win32 -- Python 3.7.9, pytest-7.0.1, pluggy-1.0.0 -- D:\a\pyppmd\pyppmd\.tox\py37\Scripts\python.EXE
cachedir: .tox\py37\.pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('D:\\a\\pyppmd\\pyppmd\\.hypothesis\\examples')
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: D:\a\pyppmd\pyppmd, configfile: pyproject.toml, testpaths: tests
plugins: hypothesis-6.39.3, benchmark-3.4.1, cov-3.0.0, timeout-2.1.0
collecting ... collected 27 items
tests/test_benchmark.py::test_benchmark_text_compress[PPMd H-7-6-16777216] SKIPPED
tests/test_benchmark.py::test_benchmark_text_compress[PPMd I-8-8-8388608] SKIPPED
tests/test_benchmark.py::test_benchmark_text_decompress[PPMd H-7-6-16777216] SKIPPED
tests/test_benchmark.py::test_benchmark_text_decompress[PPMd I-8-8-8388608] SKIPPED
tests/test_fuzzer.py::test_ppmd7_fuzzer PASSED
tests/test_fuzzer.py::test_ppmd8_fuzzer Windows fatal exception: access violation
Current thread 0x000010f0 (most recent call first):
File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 42 in test_ppmd8_fuzzer
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 575 in test
File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 31 in test_ppmd8_fuzzer
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 633 in run
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\executors.py", line 47 in default_new_style_executor
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 637 in execute_once
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 699 in _execute_once_for_engine
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 184 in __stoppable_test_function
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 208 in test_function
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 1055 in cached_test_function
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 809 in generate_mutations_from
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 729 in generate_new_examples
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 876 in _run
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\internal\conjecture\engine.py", line 470 in run
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 776 in run_engine
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\hypothesis\core.py", line 1159 in wrapped_test
File "D:\a\pyppmd\pyppmd\tests\test_fuzzer.py", line 31 in test_ppmd8_fuzzer
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\python.py", line 192 in pytest_pyfunc_call
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\python.py", line 1718 in runtest
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 168 in pytest_runtest_call
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 261 in
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 340 in from_call
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 261 in call_runtest_hook
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 221 in call_and_report
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 132 in runtestprotocol
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\runner.py", line 113 in pytest_runtest_protocol
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 347 in pytest_runtestloop
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 322 in _main
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 268 in wrap_session
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\main.py", line 315 in pytest_cmdline_main
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\config\__init__.py", line 166 in main
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\_pytest\config\__init__.py", line 188 in console_main
File "D:\a\pyppmd\pyppmd\.tox\py37\lib\site-packages\pytest\__main__.py", line 5 in
File "c:\hostedtoolcache\windows\python\3.7.9\x86\lib\runpy.py", line 85 in _run_code
File "c:\hostedtoolcache\windows\python\3.7.9\x86\lib\runpy.py", line 193 in _run_module_as_main
```
Describe the bug Decompression on 32bit python on Windows causes access violation
Related issue
86
To Reproduce Run tox test on 32bit python on windows
Expected behavior It should be no exception
Environment (please complete the following information):
Test data(please attach in the report):
tests/test_fuzzer.py::test_ppmd8_fuzzer Windows fatal exception: access violation