o
    Á¿iç  ã                	   @  sf  d dl mZ d dlmZ d dlZd dlmZ d dlZd dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lmZ eƒ ejd
< dejd
 _eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< eƒ ejd< G dd„ deƒZeejd _eeƒj ¡ d d d d Zej d eeƒ¡ d dlZdEd!d"„Zd#d$„ Zd%d&„ eg d'¢dd(d)id(d*id+d)id+d*igg d,¢ƒD ƒZed-d(d)id.ƒZd/d0„ Z dFd9d:„Z!dGd?d@„Z"dAd&„ eg d,¢de#e$gg d'¢g dB¢dCdDgƒD ƒZ%eD ]
Z&ee&ƒsJ ‚qeeƒsJ ‚ee ƒs$J ‚e%D ]
Z&ee&ƒs/J ‚q&dS )Hé    )Úannotations)ÚproductN)ÚPath)ÚCallable)ÚOptional)ÚUnion)Ú	MagicMock)Ú
StringTypeÚddtracez0.0.0zddtrace.internalzddtrace.internal.compatzddtrace.internal.constantszddtrace.internal.datadogz"ddtrace.internal.datadog.profilingz'ddtrace.internal.datadog.profiling.ddupz-ddtrace.internal.datadog.profiling.ddup.utilszddtrace.internal.runtimezddtrace.internal.runtime.compatz"ddtrace.internal.runtime.constantszddtrace._tracezddtrace._trace.spanc                   @  s    e Zd Z				ddd	d
„ZdS )ÚSpanNÚspan_idúOptional[int]ÚserviceúUnion[None, str, bytes]Ú	span_typeÚ_local_rootúOptional[Span]c                 C  s   || _ || _|| _|| _d S ©N)r   r   r   r   )Úselfr   r   r   r   © r   új/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/datadog/profiling/ddup/test/interface.pyÚ__init__$   s   
zSpan.__init__)NNNN)r   r   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   #   s    ûr   z..ÚbuildÚddupÚtestr   ÚreturnÚboolc              
   C  st   t  ¡ }|dkr&z| ƒ  t  d¡ W d S  ty% } zt|ƒ |‚d }~ww t  |d¡\}}t  |¡o9t  |¡dkS )Nr   )ÚosÚforkÚ_exitÚ	ExceptionÚprintÚwaitpidÚ	WIFEXITEDÚWEXITSTATUS)r   ÚpidÚeÚ_Ústatusr   r   r   Úrun_test<   s   €þr,   c                   s   ‡ ‡‡fdd„}|S )Nc                     s   t jˆ ˆ ˆ ˆˆˆ d d S )N)r   ÚenvÚversionÚtagsÚmax_nframesÚurl)Ú_ddupÚinitr   ©Únamer/   Úvaluer   r   r   M   s   
úzInitTest.<locals>.testr   )r5   r/   r6   r   r   r4   r   ÚInitTestL   s   
r7   c                 C  s   g | ]\}}}t |||ƒ‘qS r   )r7   )Ú.0r5   r/   r6   r   r   r   Ú
<listcomp>[   s    
ÿÿr9   )Ns   namer5   Útagr6   s   values   tag)r   éÿÿÿÿé   é   i  @l   ÿÿÿ l          l         l   ÿÿÿÿ l            l           l   ÿÿÿÿ l            l           r5   é
   c                  C  s`   t ƒ  t ¡ } |  dd¡ |  dd¡ |  dd¡ |  dd¡ |  dd¡ |  d¡ |  	¡  d S )Nr<   )
Ú
InitNormalr2   ÚSampleHandleÚpush_walltimeÚpush_cputimeÚpush_acquireÚpush_releaseÚ
push_allocÚ	push_heapÚflush_sample)Úhr   r   r   ÚSampleTestSimplew   s   
rI   Úintr	   Úexc_typeúOptional[type[Exception]]ÚlinenoÚspanr   úCallable[[], None]c                   s   d‡ ‡‡‡‡fdd„}|S )Nr   ÚNonec               
     sØ   zUt ƒ  t ¡ } |  ˆd¡ |  ˆd¡ |  ˆd¡ |  ˆd¡ |  ˆd¡ |  ˆ¡ |  	ˆˆˆ¡ |  
ˆ¡ |  ˆ¡ |  ˆ ˆ¡ |  ˆ¡ |  ˆˆˆˆ¡ |  ¡  W d S  tyk } z
tdƒ t|ƒ |‚d }~ww )Nr<   zException in test:)r?   r2   r@   rA   rB   rC   rD   rE   rF   Úpush_threadinfoÚpush_task_idÚpush_task_nameÚpush_exceptioninfoÚ	push_spanÚ
push_framerG   r#   r$   )rH   r)   ©rK   rM   r5   rN   r6   r   r   r   †   s,   



€üzSampleTest.<locals>.test)r   rP   r   )r6   r5   rK   rM   rN   r   r   rW   r   Ú
SampleTestƒ   s   rX   r   r   r   Úadd_local_rootc                 C  s    t | |||rt | ||ƒƒS d ƒS r   )r   )r   r   r   rY   r   r   r   ÚMakeSpan    s    rZ   c                 C  s0   g | ]\}}}}}t ||||t||||ƒƒ‘qS r   )rX   rZ   )r8   r6   rK   r5   rM   rY   r   r   r   r9   ¥   s    ÿÿ)r;   r   r<   r=   iè  FT)r   r   r   r   )r6   rJ   r5   r	   rK   rL   rM   rJ   rN   r   r   rO   )
r   rJ   r   r	   r   r	   rY   r   r   r   )'Ú
__future__r   Ú	itertoolsr   r    Úpathlibr   ÚsysÚtypingr   r   r   Úunittest.mockr   Ú)ddtrace.internal.datadog.profiling._typesr	   ÚmodulesÚ__version__Úobjectr   Ú__file__ÚparentÚresolveÚ	ddup_pathÚpathÚinsertÚstrr2   r,   r7   ÚInitTypeTestsr?   rI   rX   rZ   r#   Ú
ValueErrorÚSampleTypeTestsr   r   r   r   r   Ú<module>   st    
ýþ

ìþÿ