miurahr / pyppmd

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.

Home Page:https://pyppmd.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Access violation on 32bit python on Windows

miurahr opened this issue · comments

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 <lambda>
    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 <module>
    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

#90 resolves this.