a
    W×aÌ	  ã                   @   s„   d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
ZddlZddlZddlZG dd„ dejjƒZed	kr€ddlZe ¡  dS )
zTests for samba.samba3.libsmb.é    )Úlibsmb_samba_internal)Úsecurity)Úparam)ÚcredentialsNc                   @   s&   e Zd ZG dd„ dejƒZdd„ ZdS )ÚLibsmbTestCasec                   @   s   e Zd Zdd„ Zdd„ ZdS )zLibsmbTestCase.OpenClosec                 C   s(   t j | ¡ || _|| _|| _d| _d S )NF)Ú	threadingÚThreadÚ__init__ÚconnÚfilenameÚnum_opsÚexc)Úselfr
   r   r   © r   ú4/usr/lib/python3/dist-packages/samba/tests/libsmb.pyr	   "   s
    z!LibsmbTestCase.OpenClose.__init__c                 C   sf   | j }z>t| jƒD ].}|j| jdtjd}| |d¡ | |¡ qW n t	y`   t
 ¡ | _Y n0 d S )Né   )ZCreateDispositionZDesiredAccessT)r
   Úranger   Zcreater   r   ZSEC_STD_DELETEZdelete_on_closeÚcloseÚ	ExceptionÚsysÚexc_infor   )r   ÚcÚiÚfr   r   r   Úrun)   s    
ÿzLibsmbTestCase.OpenClose.runN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   Ú	OpenClose    s   r   c                 C   sÚ   t  ¡ }| t d¡¡ t ¡ }| |¡ | t d¡¡ | 	t d¡¡ t
jt d¡d||ddd}g }tdƒD ]$}t |d	t|ƒ d
¡}| |¡ qr|D ]}| ¡  qœ|D ]&}| ¡  |jr®|jd |jd ƒ‚q®d S )NZSMB_CONF_PATHZUSERNAMEZPASSWORDZ	SERVER_IPÚtmpT)Zmulti_threadedZ
force_smb1r   Útesté
   r   é   )Ús3paramZget_contextÚloadÚosÚgetenvr   ZCredentialsZguessZset_usernameZset_passwordÚlibsmbZConnr   r   r   ÚstrÚappendÚstartÚjoinr   )r   ZlpZcredsr   Z	mythreadsr   Útr   r   r   Útest_OpenClose4   s(    
þ
zLibsmbTestCase.test_OpenCloseN)r   r   r   r   r   r   r-   r   r   r   r   r      s   r   Ú__main__)Ú__doc__Zsamba.samba3r   r'   Zsamba.dcerpcr   r   r#   Zsambar   Zsamba.testsr   r   r%   ZtestsZTestCaser   r   ZunittestÚmainr   r   r   r   Ú<module>   s   3