
    b                     V    d Z ddlZddlmZ ddlmZ ddlmZmZ  G d de          Z	dS )zTests limits on processes forked by fork on accept in the standard process
   model.
   NOTE: This test runs in an environment with an artificially low setting for
         smbd max processes
    N)TestCase)SamDB)LdbErrorERR_OPERATIONS_ERRORc                   4     e Zd Z fdZ fdZd Zd Z xZS )StandardModelProcessLimitTestsc                 V    t          t          |                                            d S N)superr   setUpself	__class__s    </usr/lib/python3/dist-packages/samba/tests/process_limits.pyr   z$StandardModelProcessLimitTests.setUp!   s&    ,d3399;;;;;    c                 V    t          t          |                                            d S r
   )r   r   tearDownr   s    r   r   z'StandardModelProcessLimitTests.tearDown$   s&    ,d33<<>>>>>r   c                 <   |                      |                                           }|                    |                                d|                                           t          dt          j        d         z  |                                 |          S )Ntemplate\z
ldaps://%sSERVER)urllpcredentials)	insta_credsget_credentialsset_bind_dn
get_domainget_usernamer   osenvironget_loadparm)r   credss     r   simple_bindz*StandardModelProcessLimitTests.simple_bind'   s      $*>*>*@*@ AAe&6&6&8&8&8&8&+&8&8&:&:&:< 	= 	= 	= 
8(<<))++!&( ( ( 	(r   c                 2   |                      |                                           }|                    |                                d|                                           g }	 t          d          D ])}|                    |                                            *|                     d           nX# t          $ rK}|j
        \  }}|t          k    r |                    d          s|                    d          s Y d }~nd }~ww xY w|D ]}~d S )Nr   r      z<Processes not limited, able to make more than 20 connections!NT_STATUS_CONNECTION_DISCONNECTEDNT_STATUS_CONNECTION_RESET)r   r   r   r   r    rangeappendr%   failr   argsr   endswith)r   r$   connections_eerrnoestrcs           r   test_process_limitsz2StandardModelProcessLimitTests.test_process_limits0   s`     $*>*>*@*@ AAe&6&6&8&8&8&8&+&8&8&:&:&:< 	= 	= 	= 	
 2YY 7 7""4#3#3#5#56666IINP P P P 	 	 	FMUD,,,MM"EFF MM">??DDDD	  	 	A	 	s   *AB9 9
DAD		D)__name__
__module____qualname__r   r   r%   r5   __classcell__)r   s   @r   r   r      so        < < < < <? ? ? ? ?( ( (      r   r   )
__doc__r!   samba.testsr   samba.samdbr   ldbr   r   r    r   r   <module>r?      s   $  
			                   . . . . . . . .- - - - -X - - - - -r   