add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
h

���_c@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
dZdZde�
ed�ZdZdZGd	d
�d
�ZdS)�N)�	os_helper)�
print_warningi �i<izDSOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\CurrentLanguagec@sPeZdZ	dd�Zdd�Zdd�Zddd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)�WindowsLoadTrackercCs$g|_d|_d|_d|_|��dS)N�)�_values�_load�_buffer�_popen�start��self�r
�3/usr/lib64/python3.10/test/libregrtest/win_utils.py�__init__$s��zWindowsLoadTracker.__init__c
Cs�dtt���}tj}|tjO}|tjO}t�||tjdt	t	tj
tj�|_t�
|tjdtjtjdtj�}t�|d�}tj|jdd�}|�d�|��}d|dtt�g}tjd�|�|tjd	�|_t�|�dS)
Nz\\.\pipe\typeperf_output_rrT)�
overlappedZtypeperfz-siz )ZstdoutZcwd)Zstr�uuidZuuid4�_winapiZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ	PIPE_WAIT�BUFSIZEZNMPWAIT_WAIT_FOREVERZNULL�pipeZ
CreateFileZ
GENERIC_WRITEZ
OPEN_EXISTING�msvcrtZopen_osfhandleZConnectNamedPipe�GetOverlappedResult�_get_counter_name�SAMPLING_INTERVAL�
subprocessZPopenZjoinrZSAVEDCWDr	�os�close)rZ	pipe_nameZ	open_modeZpipe_write_endZcommand_stdoutZoverlapZcounter_nameZcommandr
r
rr
+s.

�
�
���zWindowsLoadTracker.startcCsvt�tjt�� }t�|d�d}Wd�n1s40Yt|�}tt||��}|d}|d}d|�d|�d�S)NZCounterrZ2Z44z"\z\�")�winregZOpenKeyZHKEY_LOCAL_MACHINE�COUNTER_REGISTRY_KEYZQueryValueExZiterZdictZzip)rZperfkeyZcountersZ
counters_dictZsystemZprocess_queue_lengthr
r
rrOs.��z$WindowsLoadTracker._get_counter_nameTcCs6|jdurdSd|_|r"|j��|j��d|_dS�N)r	r�killZwait)rr r
r
rr^s



��zWindowsLoadTracker.closecCs|��dSr)rrr
r
r�__del__is��zWindowsLoadTracker.__del__cCsN|�d�}t|�dkrt�|d}|�d�r6|�d�s:t�|dd�}t|�S)Nz,irr�����)Zsplit�len�
ValueErrorZ
startswithZendswithZfloat)r�lineZtokensZvaluer
r
r�_parse_linels
��zWindowsLoadTracker._parse_linecCs�t�|jtd�\}}|�d�\}}|dkr.dS|��}|�dd�}|j|}|�d�}z|�	|d�Wn t
y�|�d�|_Y|S0d|_|S)	NTFrr
ZoemZreplacer"r)rZReadFilerrrZ	getbufferZdecoderZ
splitlinesr&r$Zpop)rrZ_Z
bytes_readZresZoutput�linesr
r
r�_read_lineszs"

���zWindowsLoadTracker._read_linesc	Cs|jdurdS|j��}|dur0|jdd�dSz|��}WntyX|��YdS0|D]�}|��}d|vrtq^|szq^z|�|�}Wnty�td|�Yq^0|j	dur�|j	t
|dt
|_	q^t|j�t
kr�|j�|�q^t|j�t|j�|_	q^|j	S)NF)r zPDH-CSVz#Failed to parse typeperf output: %ag�?)r	Zpollrr(ZBrokenPipeErrorZrstripr&r$rr�
LOAD_FACTOR_1r#r�NVALUEZappendZsum)rZ
returncoder'r%Zprocessor_queue_lengthr
r
r�
getloadavg�s>



���zWindowsLoadTracker.getloadavgN)T)Z__name__Z
__module__Z__qualname__rr
rrr!r&r(r+r
r
r
rrs$
��r)rZmathrrrrrZtest.supportrZtest.libregrtest.utilsrrrZexpr)r*rrr
r
r
rZ<module>s ��