()
| 156 | |
| 157 | |
| 158 | def test_4125(): |
| 159 | if os.environ.get('PYODIDE_ROOT'): |
| 160 | print('test_4125(): not running on Pyodide - No module named \'psutil\'.') |
| 161 | return |
| 162 | |
| 163 | if os.environ.get('PYMUPDF_RUNNING_ON_VALGRIND') == '1': |
| 164 | print(f'test_4125(): not running because PYMUPDF_RUNNING_ON_VALGRIND=1.') |
| 165 | return |
| 166 | if platform.system().startswith('MSYS_NT-'): |
| 167 | print(f'test_4125(): not running on msys2 - psutil not available.') |
| 168 | return |
| 169 | |
| 170 | print('') |
| 171 | print(f'test_4125(): {platform.python_version()=}.') |
| 172 | |
| 173 | path = os.path.normpath(f'{__file__}/../../tests/resources/test_4125.pdf') |
| 174 | import gc |
| 175 | import psutil |
| 176 | |
| 177 | root = os.path.normpath(f'{__file__}/../..') |
| 178 | sys.path.insert(0, root) |
| 179 | try: |
| 180 | import pipcl |
| 181 | finally: |
| 182 | del sys.path[0] |
| 183 | |
| 184 | process = psutil.Process() |
| 185 | |
| 186 | class State: pass |
| 187 | state = State() |
| 188 | state.rsss = list() |
| 189 | state.prev = None |
| 190 | |
| 191 | def get_stat(): |
| 192 | rss = process.memory_info().rss |
| 193 | if not state.rsss: |
| 194 | state.prev = rss |
| 195 | state.rsss.append(rss) |
| 196 | drss = rss - state.prev |
| 197 | state.prev = rss |
| 198 | print(f'test_4125():' |
| 199 | f' {rss=:,}' |
| 200 | f' rss-rss0={rss-state.rsss[0]:,}' |
| 201 | f' drss={drss:,}' |
| 202 | f'.' |
| 203 | ) |
| 204 | |
| 205 | for i in range(10): |
| 206 | with pymupdf.open(path) as document: |
| 207 | for page in document: |
| 208 | for image_info in page.get_images(full=True): |
| 209 | xref, smask, width, height, bpc, colorspace, alt_colorspace, name, filter_, referencer = image_info |
| 210 | pixmap = pymupdf.Pixmap(document, xref) |
| 211 | if pixmap.colorspace != pymupdf.csRGB: |
| 212 | pixmap2 = pymupdf.Pixmap(pymupdf.csRGB, pixmap) |
| 213 | del pixmap2 |
| 214 | del pixmap |
| 215 | pymupdf.TOOLS.store_shrink(100) |
nothing calls this directly
no test coverage detected
searching dependent graphs…