HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/lib64/python3.9/site-packages/borg/testsuite/__pycache__/cache.cpython-39.pyc
a

HZ�h.$�@s�ddlZddlZddlmZddlZddlmZddlm	Z	ddl
mZddlm
Z
dd	lmZdd
lmZddlmZmZddlmZdd
lmZGdd�d�ZGdd�d�ZdS)�N�)�packb�)�H)�TestKey)�
Statistics��
AdHocCache)�CompressionSpec)�RepoKey)�
ChunkIndex�CacheSynchronizer)�Manifest)�
Repositoryc@s:eZdZejdd��Zejdd��Zdd�Zdd�Zd	d
�Z	ej
jddd
idfed�ddgfdddddfgd�d�ej
�ddd�dd�dd�f�dd���Z
ej
�d d!ed"�d
d#d$fgid%fd!ed"�d
fgid%fd!d&gid'fd!ded"�d
fgid'fd!ed"�d(d
fgid)ff�d*d+��Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4S)5�TestCacheSynchronizercCst�S�N)r)�self�r�:/usr/lib64/python3.9/site-packages/borg/testsuite/cache.py�indexszTestCacheSynchronizer.indexcCst|�Sr)r
)rrrrr�syncszTestCacheSynchronizer.synccCs.tddddgd��}|�|�t|�r*J�dS)N�bar���.�chunks�ZfooZbazr�userr)r�feed�len�rrr�datarrr�test_no_chunkss�
z$TestCacheSynchronizer.test_no_chunksc	Csrtddddtd�ddftd�ddfgd��}|�|�t|�dksFJ�|td�d	ksZJ�|td�d
ksnJ�dS)Nrrrrrr�r�rrr�rrr"�rrrrrrrr�test_simple's��

z!TestCacheSynchronizer.test_simplec	CsLtddddtd�ddftd�ddfgd��}|tdd	d
�dgd��7}|tdd	d
�td�ddftd�ddfgdgd
��7}|tdtd�ddfgi�7}|tdtd�ddfgi�7}|dd�}|dd�}|dd�}|�|�|�|�|�|�t|�dk�sJ�|td�dk�sJ�|td�dk�s2J�|td�dk�sHJ�dS)Nrrrrrrr"rZ123456)zsecurity.foorr$)�xattrs�stuff)r'rr(�F�x)r"rr)rrr"r#r%)rrrr Zpart1Zpart2Zpart3rrr�
test_multiple7s\��
���
	����

����


z#TestCacheSynchronizer.test_multiplez
elem,errorrrzUnexpected object: map��z$Unexpected bytes in chunks structurezIncorrect key length)r�Unexpected object: integer)��?�Unexpected object: double)TzUnexpected object: true)FzUnexpected object: false)NzUnexpected object: nil)�map�bytes�intZdouble�trueZfalse�none)Zids�	structurecCsd|iS�Nrr��elemrrr�<lambda>z�zTestCacheSynchronizer.<lambda>cCs
d|giSr6rr7rrrr9{r:cCsd|ddfgiS)Nrrrrr7rrrr9|r:cCstt||��}t�t��}|�|�Wd�n1s60Yt|t�rP|g}dd�|D�}t|j�|vspJ�dS)NcSsg|]}d|�qS)�cache_sync_feed failed: r)�.0�errorrrr�
<listcomp>�r:z8TestCacheSynchronizer.test_corrupted.<locals>.<listcomp>)r�pytest�raises�
ValueErrorr�
isinstance�str�value)rrr5r8r=�packed�excinfoZpossible_errorsrrr�test_corruptedns(
z$TestCacheSynchronizer.test_corruptedz
data,errorr� r"�zInvalid chunk list entry lengthr$r-r.r/cCsVt|�}t�t��}|�|�Wd�n1s20Yt|j�d|ksRJ�dS)Nr;)rr?r@rArrCrD)rrrr r=rErFrrr�test_corrupted_ancillary�s
(z.TestCacheSynchronizer.test_corrupted_ancillarycCs�t��}|�d�|�d�dd��|�d�dd��|�d�dd��|�d�dd��|�td��|�|�dd��|�d�dd��|�d	�dd��|�d�t�|�}|S)
NsBORG_IDXrrI�littlerH�rrr)�io�BytesIO�write�to_bytesr�seekr�read)rZrefcountZ
index_datarrrr�make_index_with_refcount�s


z.TestCacheSynchronizer.make_index_with_refcountcCsz|�tjd�}t|�}tdtd�ddfgi�}t�t��}|�	|�Wd�n1sZ0Yt
|j�dksvJ�dS)Nrrrrz/cache_sync_feed failed: invalid reference count)rSr�	MAX_VALUEr
rrr?r@rArrCrD)rrrr rFrrr�test_corrupted_refcount�s��(z-TestCacheSynchronizer.test_corrupted_refcountcCsV|�tj�}t|�}tdtd�ddfgi�}|�|�|td�tjddfksRJ�dS)Nrrrrrr�rSrrTr
rrrrrrr�test_refcount_max_value�s��
z-TestCacheSynchronizer.test_refcount_max_valuecCs�|�tjd�}t|�}tdtd�ddfgi�}|�|�|td�tjddfksVJ�|�|�|td�tjddfks|J�dS)NrrrrrrrVrrrr�!test_refcount_one_below_max_value�s��

z7TestCacheSynchronizer.test_refcount_one_below_max_valueN)�__name__�
__module__�__qualname__r?�fixturerrr!r&r+ZmarkZparametrizer1rGrJrSrUrWrXrrrrrsN

7
��
��	�	
rc@s�eZdZejdd��Zejdd��Zejdd��Zejdd��Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�TestAdHocCacheccsltj�t|�d�|_t|jddd��4}|�td�d�|�tj	d�|VWd�n1s^0YdS)N�
repositoryT)Z	exclusive�creater�1234�5678)
�os�path�joinrCZrepository_locationrZputrr�MANIFEST_ID)rZtmpdirr^rrrr^�s
zTestAdHocCache.repositorycCs,|�dd�t�|t���}td�j|_|S)NZBORG_PASSPHRASE�testr4)Zsetenvrr_rZMockArgsr
Z
compressor)rr^Zmonkeypatch�keyrrrrg�szTestAdHocCache.keycCs$t||���tj||tjd�dS)N)rgZ
operationsr)rrO�loadZNO_OPERATION_CHECK)rr^rgrrr�manifest�szTestAdHocCache.manifestcCst|||�Srr)rr^rgrirrr�cache�szTestAdHocCache.cachecCs|�tj�rJ�dSr)�
seen_chunkrre�rrjrrr�test_does_not_contain_manifest�sz-TestAdHocCache.test_does_not_contain_manifestcCsD|�td��tjksJ�|�td�t��|�td��dks@J�dS)Nrr`)rkrrrT�chunk_decrefr�get)rr^rjrrr�$test_does_not_delete_existing_chunks�sz3TestAdHocCache.test_does_not_delete_existing_chunkscCsFt�t��(|jtd�dt�dd�Wd�n1s80YdS)NrraT)Z	overwrite)r?r@�AssertionError�	add_chunkrrrlrrr�test_does_not_overwrite�sz&TestAdHocCache.test_does_not_overwritecCs*|�td�dt��td�ddfks&J�dS)NrrarIr)rrrrrlrrr�test_seen_chunk_add_chunk_size�sz-TestAdHocCache.test_seen_chunk_add_chunk_sizecCs�|�td�dt��|�td��dks*J�|�td�t��|�td��rNJ�t�tj��|�	td��Wd�n1s~0YdS)zE.g. checkpoint archives�s1010rN)
rrrrrkrnr?r@rZObjectNotFoundro)rrjr^rrr�#test_deletes_chunks_during_lifetime�sz2TestAdHocCache.test_deletes_chunks_during_lifetimecCs:|�dtd�d�dksJ�|jdks(J�|jdus6J�dS)NsfoorH)FN�d)Zfile_known_and_unchangedr1Z
cache_mode�filesrlrrr�test_files_cacheszTestAdHocCache.test_files_cachecCsP|jr
J�|�td��|js"J�|js,J�|��|jr>J�t|d�rLJ�dS)Nrur)Z_txn_activerkrrZrollback�hasattrrlrrr�test_txns



zTestAdHocCache.test_txncCsN|�td�dt��td�ddfks&J�|�td�t��td�ddfksJJ�dS)Nr"rarI�/�rrrrZchunk_increfrlrrr�test_incref_after_add_chunks&z*TestAdHocCache.test_incref_after_add_chunkcCsN|�td�dt��td�ddfks&J�|�td�t��td�ddfksJJ�dS)z9This case occurs with part files, see Archive.chunk_file.rrarIrNr}rlrrr�$test_existing_incref_after_add_chunks&z3TestAdHocCache.test_existing_incref_after_add_chunkN)rYrZr[r?r\r^rgrirjrmrprsrtrvryr{r~rrrrrr]�s"



		r])rMZos.pathrbZhelpers.msgpackrr?Z	hashindexrrgr�archiverrjr	�compressr
Z
crypto.keyrrr
Zhelpersrr^rrr]rrrr�<module>s?