
    b                     v    d Z ddlZddlmZ ddlmZ ddlZddlmZ ddl	m
Z
 ddlZddlZ G d de          ZdS )	zTests for samba.messaging.    N)	Messaging)TestCase)	ndr_print)	server_idc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )MessagingTestsc                 \    t           j                                        |d<   t          |i |S )Nlp_ctx)sambatestsenv_loadparmr   )selfargskwargss      7/usr/lib/python3/dist-packages/samba/tests/messaging.pyget_contextzMessagingTests.get_context!   s-     ;3355x$)&)))    c                     |                                  }d }|                    |d f          }|                     t          |t                               |                    ||           d S )Nc                      d S N r   r   r   callbackz.MessagingTests.test_register.<locals>.callback(   s    Dr   )r   register
assertTrue
isinstanceint
deregister)r   xr   msg_types       r   test_registerzMessagingTests.test_register%   sn    	 	 	::x.//
8S11222	Xx(((((r   c                     |                                  }|                     t          |                                t                               d S r   )r   r   r   irpc_all_serverslistr   r   s     r   test_all_serverszMessagingTests.test_all_servers.   sA    
1#5#5#7#7>>?????r   c                     |                                  }|                                D ]B}|                     t          |                    |j                  t                               Cd S r   )r   r"   r   r   irpc_servers_bynamenamer#   )r   r   r(   s      r   test_by_namezMessagingTests.test_by_name2   sk    &&(( 	P 	PDOOJq'<'<TY'G'GNNOOOO	P 	Pr   c                 p    |                                  }|                     t          |j        d           d S )Nz samba.messaging test NONEXISTING)r   assertRaisesKeyErrorr'   r$   s     r   test_unknown_namez MessagingTests.test_unknown_name7   sE    (/1S	U 	U 	U 	U 	Ur   c                     |                                  }|                     t          |j        t          j                             d S r   )r   r   r   r   r$   s     r   test_assign_server_idz$MessagingTests.test_assign_server_id<   s:    
1;	0CDDEEEEEr   c                    |                                  }dt          j        dd          z  }|                    |           |                    |          }|                     t          |          d           |                     t          |j                  t          |d                              |	                    |           | 
                    t          |j        |           d S )Nzsamba.messaging test-%d   i@B r   )r   randomrandintirpc_add_namer'   assertEquallenr   r   irpc_remove_namer+   r,   )r   r   r(   	name_lists       r   test_add_remove_namez#MessagingTests.test_add_remove_name@   s    (6>!W+E+EE	))$//	Y+++1;//"9Q<00	2 	2 	2	4   (/	7 	7 	7 	7 	7r   c                   	
 ddi}ddi}d}d	d}|                      d          
	
fd}
                    ||f          }d }|                      d          }|                    ||f          	|                    d|d           |                    d|d	           t          j                    }|d         d
k     s|d         d
k     rb|s`|                    d           
                    d           t          j                    |z
  dk    rd}|d         d
k     s|d         d
k     r|`|                     |d         d
           |                     |d         d
           d S )Ncountr   F)r   r1   c                 V    | dxx         dz  cc<                        ||           d S Nr;   r1   sendgot_pingr   srcdatamsg_pong
server_ctxs       r   ping_callbackz5MessagingTests.test_ping_speed.<locals>.ping_callbackV   ;    W"OOC400000r   c                 &    | dxx         dz  cc<   d S r=   r   got_pongr   rB   rC   s       r   pong_callbackz5MessagingTests.test_ping_speed.<locals>.pong_callback\   $    W"r   )r      testingtesting2rM   皙?r1   T)r   r   r?   time	loop_oncer5   )r   rA   rJ   timeoutmsg_pingrF   rK   
client_ctx
start_timerD   rE   s            @@r   test_ping_speedzMessagingTests.test_ping_speedL   s   Q<Q<%%f--
	1 	1 	1 	1 	1 	1 &&x'@AA	# 	# 	# %%f--
&&x'@AA 	)444*555Y[[

  1$$(9A(=(=w(=  %%%  %%%y{{Z'!++	  1$$(9A(=(=w(= 	'*A...'*A.....r   c                   
 ddi}ddi}d}d
d}t          j                    }|                     |df          
fd}                    ||f          }d }|                     d          }|                    ||f          
|                    |df|d           |                    d	|d
           t          j                    }	|d         dk     s|d         dk     rb|s`|                    d                               d           t          j                    |	z
  dk    rd}|d         dk     s|d         dk     r|`|                     |d         d           |                     |d         d           d S )Nr;   r   Fr1   c                 V    | dxx         dz  cc<                        ||           d S r=   r>   r@   s       r   rF   z9MessagingTests.test_pid_defaulting.<locals>.ping_callback   rG   r   c                 &    | dxx         dz  cc<   d S r=   r   rI   s       r   rK   z9MessagingTests.test_pid_defaulting.<locals>.pong_callback   rL   r   )rM   rN   )r1   rO   rM   rP   T)osgetpidr   r   r?   rQ   rR   r5   )r   rA   rJ   rS   rT   pidrF   rK   rU   rV   rD   rE   s             @@r   test_pid_defaultingz"MessagingTests.test_pid_defaultingu   s   Q<Q<ikk%%sAh//
	1 	1 	1 	1 	1 	1 &&x'@AA	# 	# 	# %%d++
&&x'@AA 	a(I666h
333Y[[

  1$$(9A(=(=w(=  %%%  %%%y{{Z'!++	  1$$(9A(=(=w(= 	'*A...'*A.....r   N)__name__
__module____qualname__r   r    r%   r)   r-   r/   r9   rW   r^   r   r   r   r   r      s        * * *) ) )@ @ @P P P
U U U
F F F
7 
7 
7'/ '/ '/R(/ (/ (/ (/ (/r   r   )__doc__r   samba.messagingr   samba.testsr   rQ   	samba.ndrr   samba.dcerpcr   r2   r[   r   r   r   r   <module>rg      s   ( !    % % % % % %                    " " " " " "  				~/ ~/ ~/ ~/ ~/X ~/ ~/ ~/ ~/ ~/r   