idB*ddlmZmZddlmZmZmZddlmZddl m Z ddl m Z ddl Z ddl Z ddlmZGd d eZdS) )TestBase FileCreator) WindowCursorSlidingWindowMapManagerStaticWindowMapManager) align_to_mmap)randint)timeN)copyc eZdZdZdZdZdS)TestMManct|jd5}t}t|}|rJ|rJ|dksJ||j}|rJ|sJ| |jksJ||jksJ dddn #1swxYwYt|}|s|sJ|rJ| ||s|sJ| | | t| dS)N cursor_testr)rk_window_test_sizerris_valid is_associatedsize make_cursorpath file_sizer assign unuse_region_destroy)selffcmancicvcios I/opt/cloudlinux/venv/lib/python3.11/site-packages/smmap/test/test_mman.py test_cursorzTestMMan.test_cursors  0- @ @ (B)++Cc""B{{}} $ $ $'')) ) ) )7799>>>>))B{{}} $ $ $##%% % % %<<>>RW,,,,7799''''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( (2hh<<>>9c&7&7&9&9999##%%%%% " ;;==7R%5%5%7%7777   S""$$$$$sC(D  DDc t}t}||fD]}|dksJ|dksJd}t |trd}||ksJ|dksJ|dksJ|d|d|tj dksJt|j d5}tj|jtj} |j|fD]}||}||usJ|ddsJ|dksJ|dksJt|jd5} |dd| dddksJ dddn #1swxYwYt |t2r!|t6|jn |t6|jtj|n#tj|wxYw dddn #1swxYwYdS)Nr manager_testrb)rrnum_file_handlesnum_open_files isinstance window_sizemapped_memory_sizemax_mapped_memory_size_collect_lru_regionsysmaxsizerrosopenrO_RDONLYr path_or_fd use_regionr ofs_beginrbufferreadint assertRaises ValueErrorfdclose) r slide_man static_manrwinsize_cmp_valrr=itemcfps r!test_memory_managerzTestMMan.test_memory_manager2s^+-- +--  *' !' !C''))Q....%%''1,,,,O#566 %"$??$$6666))++q0000--//!3333  # #A & & &  # #B ' ' '**3;771<<<<T4nEE !WRWbk22!!#" EEOOD11 ||~~5555 ||B33<<>>>>> {{}}2222 vvxx2~~~~!"'400EB#$88::aaa=BGGBKK4D#D#D#D#D#DEEEEEEEEEEEEEEE"$,,<))*af====))*ad;;;HRLLLLBHRLLLLL' ! ! ! ! ! ! ! ! ! ! ! ! ! ! !)' !' !sP#%K B+J64>H? 3 J6?I J6I AJ6!K6K  KK #K c t|jd5}t|jd5}|}dddn #1swxYwYt j|jt j} d}td|jdz|fft|jdz|jdz|fffD]E\}}|j|fD]4}t||jksJ||d|d|d } | |} | dksJ| dksJd } | dz} | | | sJ| } | dksJ| dksJ| dksJ| | ksJ| | ksJ| dksJ| r;| t+| d ksJn| |jksJ| dd|| | | p| zksJ| p|jd z }| d|sJ| | ksJ| dksJ| |ksJ| dksJ| dd|d|ksJd }|j| p| z |z} | | | sJ| rg| dksJ| | ksJ| | usJ| dksJn| |jksJ| } | dksJ| | ksJ| |jksJ| dd|| | | p| zksJ| | rJ| r| dksJd }|}d}t3}| j}| }| }| j }| j}|r|dz}t;d|jdz } | r||ksJ||ksJ| | | p| sJ| }| dd|| | |zksJ||z }|| sJ|| |zdz sJ|| |zrJ|t=t3|z d}t?d}tAd|||z |tC||||z |z fztDj#| |j| rJ| sJ| $sJ| dksJ6G t j%|n#t j%|wxYw ddddS#1swxYwYdS)Nmanager_operation_testr'rdr)r,max_memory_sizemax_open_handlesiTr%igMbP?i@Bz`%s: Read %i mb of memory with %i random on cursor initialized with %s accesses in %fs (%f mb/s) )file)&rrr3rr9r2r4rrrlenrr*r-r,r6rregion client_countr)r7r r8ofs_endrr includes_ofsr.max_file_handlesr maxfloatprinttyper0stderrcollectr>)rrrDdatar=max_num_handlesmtypeargsrBrrC base_offsetrrrnsize overshootmax_random_accessesnum_random_accesses memory_readstrSr.rTr-r)csizeelapsedmbs r!test_memman_operationzTestMMan.test_memman_operation`s$ 02J K K~ rbgt$$ !wwyy ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"+..Bz "$%;aA=_$`%m$n$qs;s;KE4!#" q;q;"4yyBG3333$eQacghicjkkkOOD11 #1133q8888"55771<<<<&* "00A5 ||K>>GGIIIIIXXZZ!00A5555"1133q8888"3355::::"557727799DDDD !{{}} ;;;;!||~~2222??,,8#%7799 coo>O>OQU0V0V#V#V#V#V#V#%7799#7#7#7#7 !xxzz!!!}[PTP`XYX^X^X`X`Aa5a0bbbbb"&B 6 ||Au55>>@@@@@ xxzzR////"3355:::: vvxx50000 {{}}1111 xxzz!!!}VeV <<<<%) &(g1A&BY&N  ||K>>GGIIIII??,,6##7#9#9Q#>#>#>#>#$6688d????#$88::R#7#7#7#7#%??#4#4#9#9#9#9#9#$6688bg#5#5#5#5XXZZ!00A5555!||~~ ====!zz||rw6666 xxzz!!!}[PTP`XYX^X^X`X`Aa5a0bbbbb(((#$::<<///??,,?$'#7#7#9#9Q#>#>#>#> /3+.A+&' !VV()~ 141K1K1M1M.+.+?+?+A+A(-0-C*+.+?(1I/14/*1!RWq[*A*AK #00V'=ASASAUAU'U'U'U'U#37G7G7I7I#I#I#I#I#$<< d>Naffhh#P#P#Y#Y#[#[[[[$%FFHHE#$88::aaa=DXEX9X4Y#Y#Y#Y#Y'50K#/< #<#<<<<#/< e0Ca0G#H#HHHH'3|K%4G'H'HHHH!2I$#&dffrk5"9"9";//B!& b(8:MtTXzz[bepsueuzAeA!BB#&://// $%<<#>#>#G#G#I#IIII #3355555"{{}},,,"3355:::::cq;s;n  }~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ sM`3A  `3 A `3A '`3=]9` 7`3 `""`33`7:`7N)__name__ __module__ __qualname__r"rErjr!rrsG%%%>+!+!+!\@@@@@ror)librr smmap.mmanrrr smmap.utilr randomr r r2r0r rrnror!rts&&&&&&&& %$$$$$ OOOOOxOOOOOro