HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: //usr/lib64/python3.6/site-packages/borg/testsuite/__pycache__/cache.cpython-36.opt-1.pyc
3

y��b�#�@s�ddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlm
Z
dd	lmZdd
lmZmZddlmZddlmZdd
lmZejZGdd�d�ZGdd�d�ZdS)�N�)�H)�TestKey�)�
Statistics)�
AdHocCache)�CompressionSpec)�RepoKey)�
ChunkIndex�CacheSynchronizer)�Manifest)�msgpack)�
Repositoryc
@s2eZdZejdd��Zejdd��Zdd�Zdd�Zd	d
�Z	ej
jddd
idfed�ddgfd2d3d4d5d6f�ej
jddd�dd�dd�f�d d!���Z
ej
jd"d#ed$�d
d%d&fgid'fd#ed$�d
fgid'fd#d7gidfd#ded$�d
fgidfd#ed$�dd
fgidff�d(d)��Zd*d+�Zd,d-�Zd.d/�Zd0d1�ZdS)8�TestCacheSynchronizercCst�S)N)r
)�self�r�/usr/lib64/python3.6/cache.py�indexszTestCacheSynchronizer.indexcCst|�S)N)r)rrrrr�syncszTestCacheSynchronizer.synccCs"tddddgd��}|j|�dS)N�bari�i.�chunks)�foo�bazr�userr)�packb�feed)rrr�datarrr�test_no_chunkss

z$TestCacheSynchronizer.test_no_chunksc	Cs:tddddtd�ddftd�ddfgd��}|j|�dS)	Nri�i.rrr�)rrrrr)rrr)rrrrrrr�test_simple(s
z!TestCacheSynchronizer.test_simplec	Cs�tddddtd�ddftd�ddfgd��}|tdd	d
�dgd��7}|tdd	d
�td�ddftd�ddfgdgd��7}|tdtd�ddfgi�7}|tdtd�ddfgi�7}|dd
�}|d
d�}|dd�}|j|�|j|�|j|�dS)Nri�i.rrrr)rrrrrZ123456)zsecurity.foor)�xattrs�stuff)r rr!�F�x)rrr)rrr)rrr)rrrrZpart1Zpart2Zpart3rrr�
test_multiple8s<


z#TestCacheSynchronizer.test_multiplez
elem,errorrrzUnexpected object: map��z$Unexpected bytes in chunks structurezIncorrect key length�Unexpected object: integer��?�Unexpected object: doubleT�Unexpected object: trueF�Unexpected object: falseN�Unexpected object: nil�	structurecCsd|iS)Nrr)�elemrrr�<lambda>{szTestCacheSynchronizer.<lambda>cCs
d|giS)Nrr)r-rrrr.|scCsd|ddfgiS)Nrrrr)r-rrrr.}sc
CsNt||��}tjt��}|j|�WdQRXt|t�r<|g}dd�|D�}dS)NcSsg|]}d|�qS)zcache_sync_feed failed: r)�.0�errorrrr�
<listcomp>�sz8TestCacheSynchronizer.test_corrupted.<locals>.<listcomp>)r�pytest�raises�
ValueErrorr�
isinstance�str)rrr,r-r0�packed�excinfoZpossible_errorsrrr�test_corruptedos
z$TestCacheSynchronizer.test_corruptedz
data,errorr� r�zInvalid chunk list entry lengthc	Cs,t|�}tjt��}|j|�WdQRXdS)N)rr2r3r4r)rrrrr0r7r8rrr�test_corrupted_ancillary�s
z.TestCacheSynchronizer.test_corrupted_ancillarycCs�tj�}|jd�|jdjdd��|jdjdd��|jdjdd��|jd
jdd��|jtd��|j|jdd��|jdjdd��|jd	jdd��|jd�tj|�}|S)NsBORG_IDXrr;�littler:rri�i.�)�io�BytesIO�write�to_bytesr�seekr
�read)rZrefcountZ
index_datarrrr�make_index_with_refcount�s


z.TestCacheSynchronizer.make_index_with_refcountc	CsT|jtjd�}t|�}tdtd�ddfgi�}tjt��}|j	|�WdQRXdS)Nrrrr)
rEr
�	MAX_VALUErrrr2r3r4r)rrrrr8rrr�test_corrupted_refcount�sz-TestCacheSynchronizer.test_corrupted_refcountcCs:|jtj�}t|�}tdtd�ddfgi�}|j|�dS)Nrrrr)rEr
rFrrrr)rrrrrrr�test_refcount_max_value�s
z-TestCacheSynchronizer.test_refcount_max_valuecCsH|jtjd�}t|�}tdtd�ddfgi�}|j|�|j|�dS)Nrrrr)rEr
rFrrrr)rrrrrrr�!test_refcount_one_below_max_value�s

z7TestCacheSynchronizer.test_refcount_one_below_max_value)rr&)r'r()Tr))Fr*)Nr+)rrr)�__name__�
__module__�__qualname__r2�fixturerrrrr$ZmarkZparametrize�bytesr9r<rErGrHrIrrrrrs:7
$rc@s�eZdZejdd��Zejdd��Zejdd��Zejdd��Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�TestAdHocCachec
csXtjjt|�d�|_t|jddd��*}|jtd�d�|jtj	d�|VWdQRXdS)N�
repositoryT)Z	exclusive�creaters1234s5678)
�os�path�joinr6Zrepository_locationrZputrrZMANIFEST_ID)rZtmpdirrPrrrrP�s
zTestAdHocCache.repositorycCs,|jdd�tj|tj��}td�j|_|S)NZBORG_PASSPHRASEZtestZnone)Zsetenvr	rQrZMockArgsrZ
compressor)rrPZmonkeypatch�keyrrrrU�szTestAdHocCache.keycCs$t||�j�tj||tjd�dS)N)rUZ
operationsr)rrA�loadZNO_OPERATION_CHECK)rrPrUrrr�manifest�szTestAdHocCache.manifestcCst|||�S)N)r)rrPrUrWrrr�cache�szTestAdHocCache.cachecCsdS)Nr)rrXrrr�test_does_not_contain_manifest�sz-TestAdHocCache.test_does_not_contain_manifestcCs|jtd�t��dS)Nr)�chunk_decrefrr)rrPrXrrr�$test_does_not_delete_existing_chunks�sz3TestAdHocCache.test_does_not_delete_existing_chunksc
Cs2tjt��|jtd�dt�dd�WdQRXdS)Nrs5678T)Z	overwrite)r2r3�AssertionError�	add_chunkrr)rrXrrr�test_does_not_overwrite�sz&TestAdHocCache.test_does_not_overwritecCsdS)Nr)rrXrrr�test_seen_chunk_add_chunk_size�sz-TestAdHocCache.test_seen_chunk_add_chunk_sizec
CsP|jtd�dt��|jtd�t��tjtj��|jtd��WdQRXdS)zE.g. checkpoint archives�s1010N)	r]rrrZr2r3rZObjectNotFound�get)rrXrPrrr�#test_deletes_chunks_during_lifetime�sz2TestAdHocCache.test_deletes_chunks_during_lifetimecCsdS)Nr)rrXrrr�test_files_cacheszTestAdHocCache.test_files_cachecCs|jtd��|j�dS)Nr`)Z
seen_chunkrZrollback)rrXrrr�test_txnszTestAdHocCache.test_txncCsdS)Nr)rrXrrr�test_incref_after_add_chunksz*TestAdHocCache.test_incref_after_add_chunkcCsdS)z9This case occurs with part files, see Archive.chunk_file.Nr)rrXrrr�$test_existing_incref_after_add_chunksz3TestAdHocCache.test_existing_incref_after_add_chunkN)rJrKrLr2rMrPrUrWrXrYr[r^r_rbrcrdrerfrrrrrO�s		rO)r?Zos.pathrRr2Z	hashindexrrUr�archiverrXr�compressrZ
crypto.keyr	r
rZhelpersrr
rPrrrrOrrrr�<module>s ?