403Webshell
Server IP : 46.62.235.243  /  Your IP : 216.73.216.217
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux Linkabili3Dicembre 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/supervisor/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/supervisor/tests/__pycache__/test_process.cpython-312.pyc
�

A�c������ddlZddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
mZmZddl	m
Z
ddl	mZddl	mZddl	mZdd	l	mZdd
l	mZddl	mZddl	mZdd
l	mZddl	mZddlmZddlmZGd�dej6�ZGd�dej6�ZGd�dej6�ZGd�de�ZGd�dej6�Z Gd�de�Z!Gd�dej6�Z"y)�N)�as_bytes��maxint)�Mock�patch�sentinel)�DummyOptions)�DummyPConfig)�DummyProcess)�DummyPGroupConfig)�DummyDispatcher)�
DummyEvent)�DummyFCGIGroupConfig)�DummySocketConfig)�DummyProcessGroup)�DummyFCGIProcessGroup��
Subprocess)�
BadCommandc�(�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\y[)\�SubprocessTestsc��ddlm}|S)Nrr)�supervisor.processr)�selfrs  �?/usr/lib/python3/dist-packages/supervisor/tests/test_process.py�_getTargetClasszSubprocessTests._getTargetClasss��1���c�.�|j�|i|��S�N�r�r�arg�kws   r�_makeOnezSubprocessTests._makeOne���%�t�#�#�%�s�1�b�1�1rc��ddlm}|�y�Nr)�clear��supervisor.eventsr(�rr(s  r�tearDownzSubprocessTests.tearDown"�
��+�
�rc��ddlm}ddlm}|jj�D].\}}t
|t�s�|j||�|��0y)Nr��
ProcessStates)�getProcessStateDescription)	�supervisor.statesr0rr1�__dict__�items�
isinstance�int�assertEqual)rr0r1�	statename�codes     r�test_getProcessStateDescriptionz/SubprocessTests.test_getProcessStateDescription&sL��3�A�,�5�5�;�;�=�	N�O�I�t��$��$�� � �!;�D�!A�9�M�	Nrc�B�t�}t|dddd��}|j|�}|j|j|�|j|jj
|�|j|jd�|j|jd�|j|jd�|j|jd�|j|jd�|j|j�|j|j�|j|jd�|j|ji�|j|ji�|j|j d�y)N�cat�bin/catz/tmp/temp123.logz/tmp/temp456.log��stdout_logfile�stderr_logfiler)r	r
r$r7�config�options�	laststart�pid�laststop�delay�assertFalse�administrative_stop�killing�backoff�pipes�dispatchers�spawnerr�rrBrA�instances    r�	test_ctorzSubprocessTests.test_ctor-sF���.���g�u�i�-?�-?�A���=�=��(��������&�1�������0�0�'�:�����+�+�Q�/�������q�)�����+�+�Q�/�����*�*�A�.��������+�����5�5�6�����)�)�*�����)�)�1�-��������,�����-�-�r�2�����*�*�D�1rc���t�}t|dd�}|j|�}t|�}|j	|jd��|j	|j
d��y)Nr<r=z<Subprocess atzwith name cat in state STOPPED>)r	r
r$�repr�
assertTrue�
startswith�endswith)rrBrArO�ss     r�	test_reprzSubprocessTests.test_reprAsZ���.���g�u�i�8���=�=��(����N��������%5�6�7�����
�
�#D�E�Frc�T�t�}t|dd�}|j|�}td��td��d�|_|j�|j
|jdjd�|j
|jdjd	�y�
N�test�/testT��readable��writable�r�rraF)r	r
r$r
rL�
reopenlogsr7�
logs_reopenedrNs    r�test_reopenlogszSubprocessTests.test_reopenlogsIs����.���g�v�w�7���=�=��(��"1�4�"@�"1�4�"@� B�����������-�-�a�0�>�>��E�����-�-�a�0�>�>��Frc�T�t�}t|dd�}|j|�}td��td��d�|_|j�|j
|jdjd�|j
|jdjd	�yrY)r	r
r$r
rL�
removelogsr7�logs_removedrNs    r�test_removelogszSubprocessTests.test_removelogsSs����.���g�v�w�7���=�=��(��"1�4�"@�"1�4�"@� B�����������-�-�a�0�=�=�t�D�����-�-�a�0�=�=�u�Erc�V�t�}t|dddd��}|j|�}td��td��d	�|_|j�|j
|jd
j�|j
|jdj�y)NrZr[�/tmp/fooz/tmp/barr>Tr\r^r`rra)	r	r
r$r
rL�drainrS�read_event_handled�write_event_handledrNs    r�
test_drainzSubprocessTests.test_drain]s����.���g�v�w�-7�-7�9���=�=��(��"1�4�"@�"1�4�"@� B�����������,�,�Q�/�B�B�C�����,�,�Q�/�C�C�Drc��t�}t|dd�}|j|�}|jt|j
�y)N�
extraquotezextraquote"�r	r
r$�assertRaisesr�get_execv_argsrNs    r�*test_get_execv_args_bad_command_extraquotez:SubprocessTests.test_get_execv_args_bad_command_extraquoteis;���.���g�|�]�C���=�=��(�����*�h�&=�&=�>rc��t�}t|dd�}|j|�}|jt|j
�y)N�empty�rqrNs    r�%test_get_execv_args_bad_command_emptyz5SubprocessTests.test_get_execv_args_bad_command_emptyos;���.���g�w��3���=�=��(�����*�h�&=�&=�>rc��t�}t|dd�}|j|�}|jt|j
�y)N�whitespaceonlyz 	 rqrNs    r�.test_get_execv_args_bad_command_whitespaceonlyz>SubprocessTests.test_get_execv_args_bad_command_whitespaceonlyus<���.���g�'7��@���=�=��(�����*�h�&=�&=�>rc��t�}t|dd�}|j|�}|j�}|j	|ddgf�y)N�notthere�	/notthere�r	r
r$rsr7�rrBrArO�argss     r�test_get_execv_args_abs_missingz/SubprocessTests.test_get_execv_args_abs_missing{sJ���.���g�z�;�?���=�=��(���&�&�(�������k�]�;�<rc��t�}t|dd�}|j|�}|j�}|j	|dddgf�y)Nr}z/notthere "an argument"r~�an argumentrr�s     r�*test_get_execv_args_abs_withquotes_missingz:SubprocessTests.test_get_execv_args_abs_withquotes_missing�sN���.���g�z�3L�M���=�=��(���&�&�(�������k�=�-I�J�Krc��t�}t|dd�}|j|�}|j�}|j	|ddgf�y)Nr}rr�s     r�test_get_execv_args_rel_missingz/SubprocessTests.test_get_execv_args_rel_missing�sJ���.���g�z�:�>���=�=��(���&�&�(������
�Z�L�9�:rc��t�}t|dd�}|j|�}|j�}|j	|dddgf�y)Nr}znotthere "an argument"r�rr�s     r�*test_get_execv_args_rel_withquotes_missingz:SubprocessTests.test_get_execv_args_rel_withquotes_missing�sN���.���g�z�3K�L���=�=��(���&�&�(������
�Z��,G�H�Irc��d}t�}t|d|�}|j|�}|j�}|j	t|�d�|j	|dd�|j	|dddg�y)Nz/bin/sh foo�sh�r�/bin/shra�foo�r	r
r$rsr7�len�r�
executablerBrArOr�s      r�test_get_execv_args_absz'SubprocessTests.test_get_execv_args_abs�sy��"�
��.���g�t�Z�8���=�=��(���&�&�(������T��A�&�����a��)�,�����a��9�e�"4�5rc��d}t�}t|d|�}|j|�}|j�}|j	t|�d�|j	|dd�|j	|dddg�y)Nzsh foor�r�rr�rar�r�r�s      r�test_get_execv_args_relz'SubprocessTests.test_get_execv_args_rel�sx���
��.���g�t�Z�8���=�=��(���&�&�(������T��A�&�����a��)�,�����a��4��-�0rc���tj�5}tjj	|j
�\�}d|z}t
�}t|d|�}�fd�|_|j|�}|j�}|j|d|j
�|j|d|dg�ddd�y#1swYyxYw)Nz%s foor�c�
���gSr�)�dirnames�r�<lambda>zUSubprocessTests.test_get_execv_args_rel_searches_using_pconfig_path.<locals>.<lambda>�s	����k�rrrar�)�tempfile�NamedTemporaryFile�os�path�split�namer	r
�get_pathr$rsr7)	r�f�basenamer�rBrArOr�r�s	        @r�3test_get_execv_args_rel_searches_using_pconfig_pathzCSubprocessTests.test_get_execv_args_rel_searches_using_pconfig_path�s����
�
(�
(�
*�		9�a� "���
�
�a�f�f� 5��G�X�!�H�,�J�"�n�G�!�'�4��<�F�1�F�O��}�}�V�,�H��*�*�,�D����T�!�W�a�f�f�-����T�!�W�x��&7�8�		9�		9�		9�s�B*C	�	Cc��t�}t|dd�}|j|�}|jd�|j	|j
d�|j	|jjdd�y)NrZr[r�rz
spawnerr: foo)r	r
r$�record_spawnerrr7rM�logger�datarNs    r�test_record_spawnerrz$SubprocessTests.test_record_spawnerr�sh���.���g�v�w�7���=�=��(��� � ��'�����*�*�E�2�������,�,�Q�/��Arc�r�t�}t|dd�}|j|�}d|_ddlm}|j|_|j�}|j|d�|j|jjdd�|j|j|j�y)Nr�r�Trr/zprocess 'sh' already running)r	r
r$rDr2r0�RUNNING�state�spawnr7r�r�)rrBrArOr0�results      r�test_spawn_already_runningz*SubprocessTests.test_spawn_already_running�s����.���g�t�Y�7���=�=��(�����3�&�.�.������!�������&�������,�,�Q�/�1O�P��������)>�)>�?rc�F�	�t�}t|dd�}|j|�}ddlm}|j
|_ddlm}g�	|j|j�	fd��|j�}|j|d�|j|jd�|j|jjdd�|j!|j"�|j!|j$�ddlm}|j|j|j
�|jt'�	�d	��	d}�	d
}|j|j(|j*�|j|j(|j,�y)N�badz
/bad/filenamerr/��eventsc�&���j|�Sr��append��x�Ls �rr�zBSubprocessTests.test_spawn_fail_check_execv_args.<locals>.<lambda>�����Q�X�X�a�[�rzbad filenamezspawnerr: bad filenamer�ra)r	r
r$r2r0�BACKOFFr��
supervisorr��	subscribe�ProcessStateEventr�r7rMr�r�rSrFrJr��	__class__�ProcessStateStartingEvent�ProcessStateBackoffEvent�
rrBrArOr0r�r��event1�event2r�s
         @r� test_spawn_fail_check_execv_argsz0SubprocessTests.test_spawn_fail_check_execv_args�sD����.���g�u�o�>���=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�����*�*�N�;�������,�,�Q�/�1I�J�������'�����(�(�)�3��������)>�)>�?�����Q���#��1����1�������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc��	�t�}ttjt	j
tj��|_t|dd�}|j|�}ddl	m
}|j|_ddl
m}g�	|j|j �	fd��|j#�}|j%|d�|j%|j&d�|j%|j(j*dd�|j-|j.�|j-|j0�ddl	m
}|j%|j|j�|j%t3�	�d	��	\}}|j%|j4|j6�|j%|j4|j8�y)
N�good�/good/filenamerr/r�c�&���j|�Srr�r�s �rr�zCSubprocessTests.test_spawn_fail_make_pipes_emfile.<locals>.<lambda>�r�rz#too many open files to spawn 'good'z-spawnerr: too many open files to spawn 'good'r�)r	�OSError�errno�EMFILEr��strerror�make_pipes_exceptionr
r$r2r0r�r�r�r�r�r�r�r7rMr�r�rSrFrJr�r�r�r�r�s
         @r�!test_spawn_fail_make_pipes_emfilez1SubprocessTests.test_spawn_fail_make_pipes_emfile�sg����.��'.�u�|�|�/1�{�{�5�<�<�/H�(J��$��g�v�/?�@���=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�����*�*�>�	@�������,�,�Q�/�H�	J�������'�����(�(�)�3��������)>�)>�?�����Q���#���������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc���
�t�}ttjt	j
tj��|_t|dd�}|j|�}ddl	m
}|j|_ddl
m}g�
|j|j �
fd��|j#�}|j%|d�d}|j%|j&|�|j%|j(j*dd|z�|j-|j.�|j-|j0�ddl	m
}|j%|j|j�|j%t3�
�d	��
\}}	|j%|j4|j6�|j%|	j4|j8�y)
Nr�r�rr/r�c�&���j|�Srr�r�s �rr�zBSubprocessTests.test_spawn_fail_make_pipes_other.<locals>.<lambda>r�rz2unknown error making dispatchers for 'good': EPERM�spawnerr: %sr�)r	r�r��EPERMr�r�r�r
r$r2r0r�r�r�r�r�r�r�r7rMr�r�rSrFrJr�r�r�r��rrBrArOr0r�r��msgr�r�r�s          @r� test_spawn_fail_make_pipes_otherz0SubprocessTests.test_spawn_fail_make_pipes_other�si����.��'.�u�{�{�/1�{�{�5�;�;�/G�(I��$��g�v�/?�@���=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�B������*�*�C�0�������,�,�Q�/��#�1E�F�������'�����(�(�)�3��������)>�)>�?�����Q���#���������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc�^��t�}t|ddd��}d�}||_|j|�}ddlm}|j|_ddlm	}g�|j|j�fd	��|j�}|j|d�d
}|j|j|�|j|jj dd|z�|j#|j$�|j#|j&�ddlm}|j|j|j�|jt)��d��\}	}
|j|	j*|j,�|j|
j*|j.�y)
Nr<�/bin/catz/a/directory)r��commandr?c�4�ttj��r)�IOErrorr��EISDIR��envelopes r�raise_eisdirzMSubprocessTests.test_spawn_fail_make_dispatchers_eisdir.<locals>.raise_eisdir����%�,�,�'�'rrr/r�c�&���j|�Srr�r�s �rr�zISubprocessTests.test_spawn_fail_make_dispatchers_eisdir.<locals>.<lambda>!r�rz2unknown error making dispatchers for 'cat': EISDIRr�r�)r	r
�make_dispatchersr$r2r0r�r�r�r�r�r�r�r7rMr�r�rSrFrJr�r�r�r�)rrBrAr�rOr0r�r�r�r�r�r�s           @r�'test_spawn_fail_make_dispatchers_eisdirz7SubprocessTests.test_spawn_fail_make_dispatchers_eisdirsV����.���g�E�:�-;�=��	(�".����=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�B������*�*�C�0�������,�,�Q�/��#�1E�F�������'�����(�(�)�3��������)>�)>�?�����Q���#���������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc�Z�
�t�}ttjt	j
tj��|_t|dd�}|j|�}ddl	m
}|j|_ddl
m}g�
|j|j �
fd��|j#�}|j%|d�d}|j%|j&|�|j%|j(j*dd|z�|j%t-|j.�d	�|j%t-|j0�d	�|j3|j4�|j3|j6�ddl	m
}|j%|j|j�|j%t-�
�d
��
\}}	|j%|j8|j:�|j%|	j8|j<�y)Nr�r�rr/r�c�&���j|�Srr�r�s �rr�z=SubprocessTests.test_spawn_fork_fail_eagain.<locals>.<lambda>:r�rz3Too many processes in process table to spawn 'good'r��r�)r	r�r��EAGAINr�r��fork_exceptionr
r$r2r0r�r�r�r�r�r�r�r7rMr�r�r��parent_pipes_closed�child_pipes_closedrSrFrJr�r�r�r�s          @r�test_spawn_fork_fail_eagainz+SubprocessTests.test_spawn_fork_fail_eagain0s�����.��!(����)+���U�\�\�)B�"D����g�v�/?�@���=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�C������*�*�C�0�������,�,�Q�/��#�1E�F�����W�8�8�9�1�=�����W�7�7�8�!�<�������'�����(�(�)�3��������)>�)>�?�����Q���#���������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc�Z�
�t�}ttjt	j
tj��|_t|dd�}|j|�}ddl	m
}|j|_ddl
m}g�
|j|j �
fd��|j#�}|j%|d�d}|j%|j&|�|j%|j(j*dd|z�|j%t-|j.�d	�|j%t-|j0�d	�|j3|j4�|j3|j6�ddl	m
}|j%|j|j�|j%t-�
�d
��
\}}	|j%|j8|j:�|j%|	j8|j<�y)Nr�r�rr/r�c�&���j|�Srr�r�s �rr�z<SubprocessTests.test_spawn_fork_fail_other.<locals>.<lambda>Ur�rz+unknown error during fork for 'good': EPERMr�r�r�)r	r�r�r�r�r�r�r
r$r2r0r�r�r�r�r�r�r�r7rMr�r�r�r�r�rSrFrJr�r�r�r�s          @r�test_spawn_fork_fail_otherz*SubprocessTests.test_spawn_fork_fail_otherKs�����.��!(����)+���U�[�[�)A�"C����g�v�/?�@���=�=��(��3�&�.�.���%�������1�1�3H�I����!�������&�;������*�*�C�0�������,�,�Q�/��#�1E�F�����W�8�8�9�1�=�����W�7�7�8�!�<�������'�����(�(�)�3��������)>�)>�?�����Q���#���������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc���t�}d|_t|ddd��}|j|�}|j	�}|j|d�|j|jd�|j|jd�|j|jd�|jt|j�d�|jt|j�|jdz
�|j|jd�|j|jddgf�|j|jd�|j|j dd	i�y)
Nrr�r�ra��uidT�r��*supervisor: child process was not spawned
)r	�forkpidr
r$r�r7r�r��pgrp_setr��duped�
fds_closed�minfds�privsdropped�
execv_args�
execve_called�written�rrBrArOr�s     r�test_spawn_as_child_setuid_okz-SubprocessTests.test_spawn_as_child_setuid_okfs9���.������g�v�/?�Q�G���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E�����-�-�q�1�����+�+�*�-=�,>�?�	B�����.�.��5�	
�������>�
?�	Arc���t�}d|_d|_t|ddd��}|j	|�}|j�}|j
|d�|j
|jd�|j
|jd�|j
|jd�|j
t|j�d�|j
t|j�|jdz
�|j
|jd	d
i�|j
|jd�|j
|j d�|j
|j"d�y)
Nrzfailure reasonr�r�rar�Tr�r�z[supervisor: couldn't setuid to 1: failure reason
supervisor: child process was not spawned
F�)r	r��
setuid_msgr
r$r�r7r�r�r�r�r�r�r�r�r�r��	_exitcoder�s     r�test_spawn_as_child_setuid_failz/SubprocessTests.test_spawn_as_child_setuid_fail|s9���.�����-����g�v�/?�Q�G���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E��������?�@�	A�	
����-�-�t�4�����.�.��6�����*�*�C�0rc���t�}d|_t|ddd��}|j|�}|j	�}|j|d�|j|jd�|j|jd�|j|jd�|jt|j�d�|jt|j�|jdz
�|j|jddgf�|j|jd�|j|jd�|j|j dd	i�y)
Nrr�r��/tmp��	directoryTr�r�r�)r	r�r
r$r�r7r�r�r�r�r�r�r�r��changed_directoryr�r�r�s     r�test_spawn_as_child_cwd_okz*SubprocessTests.test_spawn_as_child_cwd_ok�s<���.������g�v�/?�(.�0���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E�����+�+�*�-=�,>�?�	B�����2�2�D�9�����.�.��5�	
�������>�
?�	Arc��t�}d|_t|ddd��}|j|�}|j	�}|j|d�|j|jddgf�|j|jd�|j|jd�|j|jddi�y)Nrr�r�r�)�umaskTr�)
r	r�r
r$r�r7r��umasksetr�r�r�s     r�test_spawn_as_child_sets_umaskz.SubprocessTests.test_spawn_as_child_sets_umask�s����.������g�v�/?�q�I���=�=��(�����!�������&�����+�+�*�-=�,>�?�	B�����)�)�1�-�����.�.��5�	
�������>�
?�	Arc��t�}d|_ttjtjtj��|_t|ddd��}|j|�}|j�}|j|d�|j|jd�|j|jd�|j|jd�|jt|j �d�|jt|j"�|j$dz
�|j|j&d�dd	i}|j|j(|�|j|j*d
�|j|j,d�|j|j.d�y)Nrr�r�rrTr�r�zUsupervisor: couldn't chdir to /tmp: ENOENT
supervisor: child process was not spawned
rF)r	r�r�r��ENOENTr�r��chdir_exceptionr
r$r�r7r�r�r�r�r�r�r�r�r�rrr��rrBrArOr��outs      r�test_spawn_as_child_cwd_failz,SubprocessTests.test_spawn_as_child_cwd_fail�sn���.�����")�%�,�,�*,�+�+�e�l�l�*C�#E����g�v�/?�(.�0���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E�����+�+�T�2��@�A��������#�.�����*�*�C�0�����2�2�E�:�����.�.��6rc�,�t�}d|_ttjtjtj��|_t|dd�}|j|�}|j�}|j|d�|j|jd�|j|jd�|j|jd�|jt|j �d�|jt|j"�|j$dz
�ddi}|j|j&|�|j|j(d�|j|j*d�y)	Nrr�r�Tr�r�zZsupervisor: couldn't exec /good/filename: EPERM
supervisor: child process was not spawned
r)r	r�r�r�r�r�r��execv_exceptionr
r$r�r7r�r�r�r�r�r�r�r�r�rrs      r�&test_spawn_as_child_execv_fail_oserrorz6SubprocessTests.test_spawn_as_child_execv_fail_oserror�s=���.�����")�%�+�+�*,�+�+�e�k�k�*B�#D����g�v�/?�@���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E��@�A��������#�.�����-�-�t�4�����*�*�C�0rc�0�t�}d|_ttj�|_t
|dd�}|j|�}|j�}|j|d�|j|jd�|j|jd�|j|jd�|jt|j�d�|jt|j�|j dz
�|j"d}d}|j%|j'|��|j%d|v�|j|j(d�|j|j*d	�y)
Nrr�r�Tr�r�z)supervisor: couldn't exec /good/filename:�RuntimeErrorr)r	r�rr�rrr
r$r�r7r�r�r�r�r�r�r�r�rSrTr�r)rrBrArOr�r��heads       r�,test_spawn_as_child_execv_fail_runtime_errorz<SubprocessTests.test_spawn_as_child_execv_fail_runtime_error�s>���.�����".�u�|�|�"<����g�v�/?�@���=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E��o�o�a� ��:��������t�,�-�����#�-�.�����-�-�t�4�����*�*�C�0rc�*�t�}d|_t|ddddi��}|j|�}|j	�}|j|d�|j|jddgf�|j|jdd�y)Nrr<r��_TEST_�1)�environment)r	r�r
r$r�r7r��execv_environmentr�s     r�,test_spawn_as_child_uses_pconfig_environmentz<SubprocessTests.test_spawn_as_child_uses_pconfig_environment�s����.������g�u�j�+3�C�.�:���=�=��(�����!�������&�����+�+�j�:�,�-G�I�����2�2�8�<�c�Brc�4�t�}d|_t|dd�}|j|�}Gd�d�}|�|_|�|j_|j
�}|j|d�|j|jddgf�|j|jdd�|j|jdd�|j|jd	d
�|j|jdd�y)
Nrr<r�c��eZdZdZy)�QSubprocessTests.test_spawn_as_child_environment_supervisor_envvars.<locals>.Dummy�dummyN)�__name__�
__module__�__qualname__r�r�rr�Dummyr#s���Drr(�SUPERVISOR_ENABLEDr�SUPERVISOR_PROCESS_NAME�SUPERVISOR_GROUP_NAMEr$�SUPERVISOR_SERVER_URLzhttp://localhost:9001)
r	r�r
r$�grouprAr�r7r�r)rrBrArOr(r�s      r�2test_spawn_as_child_environment_supervisor_envvarszBSubprocessTests.test_spawn_as_child_environment_supervisor_envvarss���.������g�u�j�9���=�=��(��	�	����� %���������!�������&�����+�+�j�:�,�-G�I�����%�%�&:�;�S�	B�����%�%�&?�@�%�	I�����%�%�&=�>��	I�����%�%�&=�>�#�	%rc��t�}d|_t|ddd��}d|_|j	|�}|j�}|j
|d�|j
|jd�|j
|jd�|j
|jd�|j
t|j�d�|j
t|j�|jdz
�|j
|jd�|j
|jddgf�|j
|j d�|j
|j"dd	i�y)
Nrr�r�rar�Tr�r�r�)r	r�r
�redirect_stderrr$r�r7r�r�r�r�r�r�r�r�r�r�r�r�s     r�%test_spawn_as_child_stderr_redirectedz5SubprocessTests.test_spawn_as_child_stderr_redirectedsA���.������g�v�/?�Q�G��!%����=�=��(�����!�������&�����4�4�d�;�����3�3�T�:�����)�)�4�0�����W�]�]�+�Q�/�����W�/�/�0�'�.�.�1�2D�E�����-�-�q�1�����+�+�*�-=�,>�?�	B�����.�.��5�	
�������>�
?�	Arc�n�t�}d|_t|dd�}|j|�}|j	�}|j|d�|j|jdjt�|j|jdjt�|j|jdjt�|j|jdd�|j|jdd�|j|jd	d�|j|jd�|jt|j�d
�|j|jjdd�|j|jd�|j!|j"�|j|j$j&j(d|�dd
lm}|j|j.|j0�y)N�
r�r�����stdin�stdout�stderrr�rzspawned: 'good' with pid 10r/)r	r�r
r$r�r7rLr�r
rKr�r�r�r�r�rMrSrFrArB�
pidhistoryr2r0r��STARTING)rrBrArOr�r0s      r�test_spawn_as_parentz$SubprocessTests.test_spawn_as_parent/s����.������g�v�/?�@���=�=��(�����!�������$�����-�-�a�0�:�:�O�L�����-�-�a�0�:�:�O�L�����-�-�a�0�:�:�O�L��������0�!�4��������1�1�5��������1�1�5�����4�4�d�;�����W�7�7�8�!�<�������,�,�Q�/�1N�O�����*�*�D�1�������'�������0�0�;�;�B�?��J�3��������)?�)?�@rc��t�}d|_t|ddd��}|j|�}|j	�}|j|d�|j|jdjt�|j|jdjt�|j|jdd�|j|jd	d�|j|jd
d�y)Nr3r�r�T)r0r4r5r7r8r9)
r	r�r
r$r�r7rLr�r
rKr�s     r�test_spawn_redirect_stderrz*SubprocessTests.test_spawn_redirect_stderrEs����.������g�v�/?�.2�4���=�=��(�����!�������$�����-�-�a�0�:�:�O�L�����-�-�a�0�:�:�O�L��������0�!�4��������1�1�5��������1�4�8rc��d}t�}t|d|�}|j|�}ddz}|jt|j
|�d|_|j�|j|�|jd}|j||j|j�d|_|jt|j
|�y)Nr��output�a� rar7T)
r	r
r$rrr��writer�r�rKr7rL�input_bufferrI�rr�rBrArO�sent�stdin_fds       r�
test_writezSubprocessTests.test_writeSs����
��.���g�x��<���=�=��(���g������'�8�>�>�4�8�����������t���>�>�'�*������x�3�3�H�=�J�J�K�������'�8�>�>�4�8rc�l�d}t�}t|d|�}|j|�}ddz}|jt|j
|�d|_|j�|jd}|j|j�|jt|j
|�y�Nr�r@rArBrar7)r	r
r$rrr�rCr�r�rKrL�closerEs       r�test_write_dispatcher_closedz,SubprocessTests.test_write_dispatcher_closedbs����
��.���g�x��<���=�=��(���g������'�8�>�>�4�8���������>�>�'�*�����X�&�,�,�.����'�8�>�>�4�8rc��d}t�}t|d|�}|j|�}d|_|j	�|j
d}|j|j�d|j
d<	|jd�|jd�y#t$rV}|j|jdtj�|j|jdd�Yd}~yd}~wwxYw)	Nr�r@rar7r��nothing raisedrzProcess has no stdin channel)r	r
r$r�r�rKrLrKrC�failr�r7r�r��EPIPE)rr�rBrArOrG�excs       r�test_write_stdin_fd_nonez(SubprocessTests.test_write_stdin_fd_noneos����
��.���g�x��<���=�=��(����������>�>�'�*�����X�&�,�,�.�"&����w��	J��N�N�5�!��I�I�&�'���	J����S�X�X�a�[�%�+�+�6����S�X�X�a�[�*H�I�I��	J�s�>"B!�!	D�*AC;�;Dc���d}t�}t|d|�}|j|�}ddz}|jt|j
|�d|_|j�|jd}t	tjtjtj��|j|_|jt|j
|�yrJ)r	r
r$rrr�rCr�r�rKr�rPr�r�rL�flush_exceptionrEs       r�(test_write_dispatcher_flush_raises_epipez8SubprocessTests.test_write_dispatcher_flush_raises_epipe�s����
��.���g�x��<���=�=��(���g������'�8�>�>�4�8���������>�>�'�*��9@����46�K�K����4L�:N����X�&�6����'�8�>�>�4�8rc	�n��ddlm}	g��fd�}tjtj|�|�}t	�}t|d|�}|j
|�}|j�}|jjd}|j|jd��|jt|j�d�|j|j�|j|j|�|j}			t!j"d�j%�}
	t/j0d�|j|
j3t5t7|	���d	k7�|j9tj:�}t/j0d�|j|d�t!j<d	t j>�\}}
t!j"d�j%�}
|j|
j3t5t7|	���d	�|jA�g�	t!jB|�tjtjtjD�y#t&$r+}|j(dt*j,k7r�Yd}~nd}~wwxYw���#Y�pxYw#	t!jB�n#YnxYwtjtjtjD�wxYw)
Nr)�makeSpewc�(���jd�y)NTr�)r��sigchldss �r�
sighandlerz=SubprocessTests._dont_test_spawn_and_kill.<locals>.sighandler�s�������%r�spewzspawned: 'spew' with pidr��psg�������?���)#�supervisor.tests.baserW�signal�SIGCHLDr	r
r$r�r�r�rSrTr7r�rKrDr��popen�readr�r�r��EINTR�time�sleep�findrrR�kill�SIGTERM�waitpid�WNOHANG�assertNotEqual�remove�SIG_DFL)rrWrZr�rBrArOr�r��origpidr��whyrD�stsrYs              @r�_dont_test_spawn_and_killz)SubprocessTests._dont_test_spawn_and_kill�sC���2�&	:��H�
&��M�M�&�.�.�*�5�!��J�"�n�G�!�'�6�:�>�F��}�}�V�,�H��^�^�%�F��.�.�%�%�a�(�C��O�O�C�N�N�+E�F�G����S����0�!�4��O�O�H�L�L�)����X�\�\�6�2��l�l�G����8�8�D�>�.�.�0�D��

�J�J�s�O��O�O�D�I�I�h�t�G�}�&=�>�"�D�F��-�-����/�C��J�J�s�O����S�$�'��z�z�"�b�j�j�1�H�C���8�8�D�>�&�&�(�D����T�Y�Y�x��W�
�'>�?��D�����"�-�
��	�	�*�%�
�M�M�&�.�.�&�.�.�9��%���x�x��{�e�k�k�1��2����	��(
���
��	�	�*�%��
����M�M�&�.�.�&�.�.�9�s[�DK"�#J"�9D K"�K�"	K�+!K�K"�K�K"�K�"L4�$K:�9L4�:K>�<8L4c��t�}t|dd�}|j|�}d|_t	d��}d|i|_ddlm}|j|_	tj�|_|j�|j|j�|j|jd�|j|j �|j|j"j$dd	�|j|j&�|j|j(dt*j,�y)
NrZr[�Tr^r�rr/�)killing test (pid 11) with signal SIGTERM)r	r
r$rDr
rLr2r0r�r�rd�laststopreport�stoprSrHr7rFr�r�rI�killsr_rh�rrBrArO�
dispatcherr0s      r�	test_stopzSubprocessTests.test_stop�s����.���g�v�w�7���=�=��(�����$�d�3�
� %�j�1���3�&�.�.���"&�)�)�+����
�
������4�4�5�����0�0�!�4�������'�������,�,�Q�/�2*�	+�����(�(�)�������r�*�F�N�N�;rc�h�t�}t|dd�}|j|�}d|_t	d��}d|i|_ddlm}|j|_		|j�|jd	�y#t$r)}|j|jdd
�Yd}~yd}~wwxYw)NrZr[rsTr^r�rr/rNzCAssertion failed for test: STOPPED not in RUNNING STARTING STOPPING)r	r
r$rDr
rLr2r0�STOPPEDr�rvrO�AssertionErrorr7r�)rrBrArOryr0rQs       r�&test_stop_not_in_stoppable_state_errorz6SubprocessTests.test_stop_not_in_stoppable_state_error�s����.���g�v�w�7���=�=��(�����$�d�3�
� %�j�1���3�&�.�.���	<��M�M�O��I�I�&�'���	<����S�X�X�a�[�+;�
<�
<��	<�s�!A?�?	B1�B,�,B1c�8�t�}t|dd�}|j|�}d|_t	d��}d|i|_ddlm}|j|_	|j�|jt|jj�d�y)	NrZr[rsTr^r�rr/)r	r
r$rDr
rLr2r0r|r��stop_reportr7r�r�r�rxs      r�3test_stop_report_logs_nothing_if_not_stopping_statezCSubprocessTests.test_stop_report_logs_nothing_if_not_stopping_state�s~���.���g�v�w�7���=�=��(�����$�d�3�
� %�j�1���3�&�.�.�����������W�^�^�0�0�1�1�5rc�x�t�}t|dd�}|j|�}d|_t	d��}d|i|_ddlm}|j|_	|j|jd�|j�|jt|jj�d	�|j|jjdd
�|j!|jd�|j�|jt|jj�d	�y)NrZr[rsTr^r�rr/ra�waiting for test to stop)r	r
r$rDr
rLr2r0�STOPPINGr�r7rur�r�r�r�rkrxs      r�1test_stop_report_logs_throttled_by_laststopreportzASubprocessTests.test_stop_report_logs_throttled_by_laststopreport�s����.���g�v�w�7���=�=��(�����$�d�3�
� %�j�1���3�&�/�/�������0�0�!�4���������W�^�^�0�0�1�1�5�������,�,�Q�/�1K�L����H�3�3�Q�7���������W�^�^�0�0�1�1�5rc�`�tj�dz}t�}t|dd�}|j|�}d|_td��}d|i|_dd	lm}|j|_
||_|j�|jt|jj �d�|j#|j|k�tj$d
�|j�|jt|jj �d�|j|jj dd�|j'|jd�|j�|jt|jj �d�y)
N�rZr[rsTr^r�rr/r�rar�)rdr	r
r$rDr
rLr2r0r�r�rur�r7r�r�r�rSrerk)r�future_timerBrArOryr0s       r�)test_stop_report_laststopreport_in_futurez9SubprocessTests.test_stop_report_laststopreport_in_future�sN���i�i�k�D�(���.���g�v�w�7���=�=��(�����$�d�3�
� %�j�1���3�&�/�/���"-���	����	
����W�^�^�0�0�1�1�5�	
����/�/�+�=�>�	
�
�
�1�
�	��������W�^�^�0�0�1�1�5�������,�,�Q�/�1K�L����H�3�3�Q�7���������W�^�^�0�0�1�1�5rc�l��t�}t|dd�}|j|�}g�ddlm}ddlm}|j|j�fd��|j|_
|j�|j|j�|j|j�|j|j �|j#|j|j$�|j#t'��d��d}|j#|j(|j*�y)NrZr[rr/r�c�&���j|�Srr�r�s �rr�z.SubprocessTests.test_give_up.<locals>.<lambda>"r�rra)r	r
r$r2r0r�r�r�r�r�r��give_uprS�system_stoprGrFrJr7�FATALr�r��ProcessStateFatalEvent�rrBrArOr0r��eventr�s       @r�test_give_upzSubprocessTests.test_give_ups�����.���g�v�w�7���=�=��(����3�%�����1�1�3H�I�&�.�.�����������,�,�-�������(�����)�)�*��������)<�)<�=�����Q���#��!���������&�*G�*G�Hrc��t�}t|dd�}|j|�}|jtj
�|j
|jjdd�|j|j�y)NrZr[rz=attempted to kill test with sig SIGTERM but it wasn't running)r	r
r$rgr_rhr7r�r�rGrIrNs    r�test_kill_nopidzSubprocessTests.test_kill_nopid-sl���.���g�v�w�7���=�=��(���
�
�f�n�n�%�������,�,�Q�/�N�	P�����)�)�*rc���t�}t|dd�}|j|�}d|_g�ddlm}ddlm}|j|j�fd��|j|_|jtj�|j|j j"dd�|j%|j&�|j|j(dtj�|jt+��d	��d}|j|j,|j.�y)
NrZr[rsrr/r�c�&���j|�Srr�r�s �rr�z9SubprocessTests.test_kill_from_starting.<locals>.<lambda>>r�rrtra)r	r
r$rDr2r0r�r�r�r�r;r�rgr_rhr7r�r�rSrIrwr�r��ProcessStateStoppingEventr�s       @r�test_kill_from_startingz'SubprocessTests.test_kill_from_starting6s�����.���g�v�w�7���=�=��(�������3�%�����1�1�3H�I�&�/�/����
�
�f�n�n�%�������,�,�Q�/�2*�	+�����(�(�)�������r�*�F�N�N�;�����Q���#��!���������&�*J�*J�Krc���t�}t|dd�}|j|�}d|_g�ddlm}ddlm}|j|j�fd��|j|_|jtj�|j|j j"dd�|j%|j&�|j|j(dtj�|jt+��d	��d}|j|j,|j.�y)
NrZr[rsrr/r�c�&���j|�Srr�r�s �rr�z8SubprocessTests.test_kill_from_running.<locals>.<lambda>Qr�rrtra)r	r
r$rDr2r0r�r�r�r�r�r�rgr_rhr7r�r�rSrIrwr�r�r�r�s       @r�test_kill_from_runningz&SubprocessTests.test_kill_from_runningIs�����.���g�v�w�7���=�=��(�������3�%�����1�1�3H�I�&�.�.����
�
�f�n�n�%�������,�,�Q�/�2*�	+�����(�(�)�������r�*�F�N�N�;�����Q���#��!���������&�*J�*J�Krc�N��t�}t|dd�}ttjtjtj��|_|j|�}g�ddl	m
}ddlm}|j|j�fd��d|_|j |_|j%t&j(�|j+|j,j.dd�|j1|j,j.d	j3d
��|j1d|j,j.d	v�|j5|j6�|j+|jd�|j+|j"|j8�|j+t;��d��d}�d	}|j+|j<|j>�|j+|j<|j@�y)
NrZr[rr/r�c�&���j|�Srr�r�s �rr�z>SubprocessTests.test_kill_from_running_error.<locals>.<lambda>er�rrsrtrazunknown problem killing test�	Tracebackr�)!r	r
r�r�r�r�r��kill_exceptionr$r2r0r�r�r�r�rDr�r�rgr_rhr7r�r�rSrTrGrI�UNKNOWNr�r�r��ProcessStateUnknownEvent)	rrBrArOr0r�r�r�r�s	        @r�test_kill_from_running_errorz,SubprocessTests.test_kill_from_running_error\s�����.���g�v�w�7��!(����)+���U�[�[�)A�"C����=�=��(����3�%�����1�1�3H�I����&�.�.����
�
�f�n�n�%�������,�,�Q�/�2*�	+�������+�+�A�.�9�9�*�,�	-�����w�~�~�':�':�1�'=�=�>�����)�)�*�������r�*��������)>�)>�?�����Q���#��1����1�������)�)�6�+K�+K�L�����)�)�6�+J�+J�Krc���t�}t|dd�}ttjtjtj��|_|j|�}g�ddl	m
}ddlm}|j|j�fd��d|_|j |_|j%t&j(�|j+|j,j.dd�|j+|j,j.d	d
t1|j�z�|j3|j4�|j+|jd�|j+|j"|j6�|j+t9��d	��d}|j+|j:|j<�y)NrZr[rr/r�c�&���j|�Srr�r�s �rr�zDSubprocessTests.test_kill_from_running_error_ESRCH.<locals>.<lambda>�r�rrsrtrazFunable to signal test (pid 11), it probably just exited on its own: %s)r	r
r�r��ESRCHr�r�r�r$r2r0r�r�r�r�rDr�r�rgr_rhr7r�r��strrSrIr�r�r�r�)rrBrArOr0r�r�r�s       @r�"test_kill_from_running_error_ESRCHz2SubprocessTests.test_kill_from_running_error_ESRCHwsf����.���g�v�w�7��!(����)+���U�[�[�)A�"C����=�=��(����3�%�����1�1�3H�I����&�.�.����
�
�f�n�n�%�������,�,�Q�/�2�	�������,�,�Q�/�25���&�&�'�2(�	)�	
����(�(�)�������r�*��������)?�)?�@�����Q���#��1�������)�)�6�+K�+K�Lrc�$��t�}t|dd�}|j|�}d|_g�ddlm}ddlm}|j|j�fd��|j|_|jtj�|j|j j"dd�|j%|j&�|j|j(dtj�|j�g�y)	NrZr[rsrr/r�c�&���j|�Srr�r�s �rr�z9SubprocessTests.test_kill_from_stopping.<locals>.<lambda>�r�rz)killing test (pid 11) with signal SIGKILL�r	r
r$rDr2r0r�r�r�r�r�r�rgr_�SIGKILLr7r�r�rSrIrw�rrBrArOr0r�r�s      @r�test_kill_from_stoppingz'SubprocessTests.test_kill_from_stopping�s�����.���g�v�w�7���=�=��(�������3�%�����1�1�3H�I�&�/�/����
�
�f�n�n�%�������,�,�Q�/�2*�	+�����(�(�)�������r�*�F�N�N�;�����B�rc����t�}t|dd�}|j|�}g�ddlm}ddlm}|j|j�fd��|j|_
|jtj�|j|jj dd�|j#|j$��d}|j|j&|j(�y)NrZr[rr/r�c�&���j|�Srr�r�s �rr�z8SubprocessTests.test_kill_from_backoff.<locals>.<lambda>�r�rz2Attempted to kill test, which is in BACKOFF state.)r	r
r$r2r0r�r�r�r�r�r�rgr_r�r7r�r�rGrIr��ProcessStateStoppedEventr�s       @r�test_kill_from_backoffz&SubprocessTests.test_kill_from_backoff�s�����.���g�v�w�7���=�=��(����3�%�����1�1�3H�I�&�.�.����
�
�f�n�n�%�������,�,�Q�/�M�	O�����)�)�*��!���������&�*I�*I�Jrc�(��t�}t|ddd��}|j|�}d|_g�ddlm}ddlm}|j|j�fd	��|j|_|jtj�|j|j j"dd
�|j%|j&�|j|j(dtj�|j�g�y)NrZr[T)�killasgrouprsrr/r�c�&���j|�Srr�r�s �rr�zGSubprocessTests.test_kill_from_stopping_w_killasgroup.<locals>.<lambda>�r�rz7killing test (pid 11) process group with signal SIGKILL���r�r�s      @r�%test_kill_from_stopping_w_killasgroupz5SubprocessTests.test_kill_from_stopping_w_killasgroup�s�����.���g�v�w�D�I���=�=��(�������3�%�����1�1�3H�I�&�/�/����
�
�f�n�n�%�������,�,�Q�/�2=�	>�����(�(�)�������s�+�V�^�^�<�����B�rc���t�}t|ddd��}|j|�}d|_g�ddlm}ddlm}|j|j�fd	��|j|_|jtj�|j|j j"dd
�|j%|j&�|j|j(dtj�|jt+��d��d}|j|j,|j.�|j|j0d
g�|j|j2|j�y)NrZr[T)�stopasgrouprsrr/r�c�&���j|�Srr�r�s �rr�z2SubprocessTests.test_stopasgroup.<locals>.<lambda>�r�rz7killing test (pid 11) process group with signal SIGTERMr�ra)rDrs)r	r
r$rDr2r0r�r�r�r�r�r�rgr_rhr7r�r�rSrIrwr�r�r��extra_values�
from_stater�s       @r�test_stopasgroupz SubprocessTests.test_stopasgroup�s,����.���g�v�w�D�I���=�=��(�������3�%�����1�1�3H�I�&�.�.����
�
�f�n�n�%�������,�,�Q�/�2=�	>�����(�(�)�������s�+�V�^�^�<�����Q���#��!���������&�*J�*J�K�����+�+�k�]�;�����)�)�=�+@�+@�Arc�\�t�}t|dd�}|j|�}ddlm}|j
|_|jtj�|j|jjdd�|jt|j�d�y)NrZr[rr/z9attempted to send test sig SIGWINCH but it wasn't running)r	r
r$r2r0r|r�r_�SIGWINCHr7r�r�r�rw�rrBrArOr0s     r�test_signal_from_stoppedz(SubprocessTests.test_signal_from_stopped�s����.���g�v�w�7���=�=��(��3�&�.�.���������(�������,�,�Q�/�2I�	J�����W�]�]�+�Q�/rc�&�t�}t|dd�}|j|�}d|_ddlm}|j|_|jtj�|j|jjdd�|jt|j�d�|j|j|jv�|j|j|jtj�y)NrZr[rsrr/�"sending test (pid 11) sig SIGWINCHra)r	r
r$rDr2r0r�r�r_r�r7r�r�r�rwrSr�s     r�test_signal_from_runningz(SubprocessTests.test_signal_from_running�s����.���g�v�w�7���=�=��(�����3�&�.�.���������(�������,�,�Q�/�1U�V�����W�]�]�+�Q�/��������
�
�5�6�������x�|�|�4�f�o�o�Frc�^��t�}t|dd�}ttjtjtj��|_|j|�}g�ddl	m
}ddlm}|j|j�fd��d|_|j |_|j%t$j&�|j)|j*j,dd�|j)|j*j,d	d
t/|j�z�|j1|j2�|j)|j"|j �|j)|jd�|j)t5��d�y)NrZr[rr/r�c�&���j|�Srr�r�s �rr�zFSubprocessTests.test_signal_from_running_error_ESRCH.<locals>.<lambda>�r�rrsr�razJunable to signal test (pid 11), it probably just now exited on its own: %s)r	r
r�r�r�r�r�r�r$r2r0r�r�r�r�rDr�r�r_r�r7r�r�r�rGrIr�r�s      @r�$test_signal_from_running_error_ESRCHz4SubprocessTests.test_signal_from_running_error_ESRCH�sA����.���g�v�w�7��!(����)+���U�[�[�)A�"C����=�=��(����3�%�����1�1�3H�I����&�.�.���������(�������,�,�Q�/�0�	2�������,�,�Q�/�29���&�&�'�2(�	)�	
����)�)�*��������)>�)>�?�������r�*�����Q���#rc���t�}t|dd�}ttjtjtj��|_|j|�}g�ddl	m
}ddlm}|j|j�fd��d|_|j |_|j%t$j&�|j)|j*j,dd�|j/|j*j,d	j1d
��|j/d|j*j,d	v�|j3|j4�|j)|j"|j6�|j)|jd�|j)t9��d	��d}|j)|j:|j<�y)NrZr[rr/r�c�&���j|�Srr�r�s �rr�z@SubprocessTests.test_signal_from_running_error.<locals>.<lambda>r�rrsr�raz%unknown problem sending sig test (11)r�)r	r
r�r�r�r�r�r�r$r2r0r�r�r�r�rDr�r�r_r�r7r�r�rSrTrGrIr�r�r�r�r�s       @r�test_signal_from_running_errorz.SubprocessTests.test_signal_from_running_errorsv����.���g�v�w�7��!(����)+���U�[�[�)A�"C����=�=��(����3�%�����1�1�3H�I����&�.�.���������(�������,�,�Q�/�0�	2�������+�+�A�.�9�9�3�5�	6�����w�~�~�':�':�1�'=�=�>�����)�)�*��������)>�)>�?�������r�*�����Q���#��!���������&�*I�*I�Jrc�4��t�}t|ddd��}|j|�}d|_||jj
jd<d|_ddd	�}||_d
dl	m
}d
dlm}|j|_g�|j|j �fd
��d|_|j%dd�|j'|j�|j)|j"d
�|j)|j*|�|j)|ji�|j)|j,i�|j)|j.j0d
d�|j)|j2d�|j)t5��d��d
}|j)|j6|j8�|j)|j:dg�|j)|j<|j�y)Nr}r~rj�r?)�{rar�Trw�r8r9rr/r�c�&���j|�Srr�r�s �rr�z<SubprocessTests.test_finish_stopping_state.<locals>.<lambda>-r�rraz(stopped: notthere (terminated by SIGHUP)r]�rDr�)r	r
r$�
waitstatusrArBr:rIrKr2r0r�r�r�r�r�r�rD�finishrGr7r�rLr�r��
exitstatusr�r�r�r�r��	rrBrArOrKr0r�r�r�s	        @r�test_finish_stopping_statez*SubprocessTests.test_finish_stopping_states�����.���g�z�;�-7�9���=�=��(��&���2:������*�*�3�/�����b�)�����3�%�&�/�/���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�22�	3�����,�,�b�1�����Q���#��!���������&�*I�*I�J�����+�+�l�^�<�����)�)�=�+A�+A�Brc�v��t�}t|ddd��}|j|�}||jjj
d<ddd�}||_dg|j_d	d
lm	}d	dl
m}|j|_
g�|j|j�fd��d|_|j#dd
�|j%|j&�|j)|j d	�|j)|j*|�|j)|ji�|j)|j,i�|j)|j.j0d	d�|j)|j2d�|j)t5��d
��d	}|j)|j6|j8�|j)|j:d�|j)|j<ddg�|j)|j>|j�y)Nr}r~rjr�r�rwr�r]rr/r�c�&���j|�Srr�r�s �rr�zISubprocessTests.test_finish_running_state_exit_expected.<locals>.<lambda>Kr�rra�1exited: notthere (terminated by SIGHUP; expected)T��expectedTr�) r	r
r$rArBr:rK�	exitcodesr2r0r�r�r�r�r�r�rDr�rGrIr7r�rLr�r�r�r�r��ProcessStateExitedEventr�r�r�r�s	        @r�'test_finish_running_state_exit_expectedz7SubprocessTests.test_finish_running_state_exit_expected>s�����.���g�z�;�-7�9���=�=��(��2:������*�*�3�/��b�)�����$&�4����!�3�%�&�.�.���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�L�	N�����,�,�b�1�����Q���#��!����������7�7�	9��������.�����+�+�.@�,�-O�P�����)�)�=�+@�+@�Arc���t�}t|ddd��}|j|�}||jjj
d<ddd�}||_dg|j_tj�d	z|_	d
dl
m}d
dlm
}|j|_g�|j!|j"�fd
��d|_|j'dd�|j)|j*�|j-|j$d
�|j-|j.|�|j-|ji�|j-|j0i�|j-|j2j4d
d�|j-|j2j4dd�|j-|j6d�|j-t9��d��d
}|j-|j:|j<�|j-|j>d�|j-|j@dg�|j-|jB|j��d}|j-|j:|jD�|j-|j>d�|j-|j@ddg�|j-|jB|jF�y)Nr}r~rjr�r�rwr�r]r�rr/r�c�&���j|�Srr�r�s �rr�zPSubprocessTests.test_finish_starting_state_laststart_in_future.<locals>.<lambda>lr�rra��process 'notthere' (123) laststart time is in the future, don't know how long process was running so assuming it did not exit too quicklyr�r�Tr�r�)$r	r
r$rArBr:rKr�rdrCr2r0r�r�r;r�r�r�rDr�rGrIr7r�rLr�r�r�r�r��ProcessStateRunningEventr�r�r�r�r�r�s	        @r�.test_finish_starting_state_laststart_in_futurez>SubprocessTests.test_finish_starting_state_laststart_in_future^sr����.���g�z�;�-7�9���=�=��(��2:������*�*�3�/��b�)�����$&�4����!�!�Y�Y�[�4�/���3�%�&�/�/���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�@�	A�	
������,�,�Q�/�L�	N�����,�,�b�1�����Q���#��!���������&�*I�*I�J��������.�����+�+�l�^�<�����)�)�=�+A�+A�B��!���������&�*H�*H�I��������.�����+�+�.@�,�-O�P�����)�)�=�+@�+@�Arc�6��t�}t|dddd��}|j|�}||jjj
d<ddd�}||_d	g|j_tj�|_	d
dl
m}d
dlm
}|j|_g�|j!|j"�fd
��d|_|j'dd�|j)|j*�|j-|j$d
�|j-|j.|�|j-|ji�|j-|j0i�|j-|j2j4d
d�|j-|j6d�|j-t9��d��d
}|j-|j:|j<�|j-|j>|j�y)Nr}r~rjr3�r?�	startsecsr�rwr�r]rr/r�c�&���j|�Srr�r�s �rr�zOSubprocessTests.test_finish_starting_state_exited_too_quickly.<locals>.<lambda>�r�rraz5exited: notthere (terminated by SIGHUP; not expected)) r	r
r$rArBr:rKr�rdrCr2r0r�r�r;r�r�r�rDr�rGrIr7r�rLr�r�r�r�r�r�r�r�s	        @r�-test_finish_starting_state_exited_too_quicklyz=SubprocessTests.test_finish_starting_state_exited_too_quickly�s�����.���g�z�;�-7�2�G���=�=��(��2:������*�*�3�/��b�)�����$&�4����!�!�Y�Y�[���3�%�&�/�/���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�M�	O�����,�,�d�3�����Q���#��!���������&�*I�*I�J�����)�)�=�+A�+A�Brc���t�}t|dddd��}|j|�}||jjj
d<ddd�}||_d	g|j_tj�|_	d
dl
m}d
dlm
}|j|_g�|j!|j"�fd
��d|_|j'dd�|j)|j*�|j-|j$d
�|j-|j.|�|j-|ji�|j-|j0i�|j-|j2j4d
d�|j-|j6d	�|j-t9��d��d
}|j-|j:|j<�|j-|j>d�|j-|j@ddg�|j-|jB|j�y)Nr}r~rjr3r�r�rwr�r]rr/r�c�&���j|�Srr�r�s �rr�zdSubprocessTests.test_finish_running_state_exited_too_quickly_due_to_clock_rollback.<locals>.<lambda>�r�rrar�Tr�r��"r	r
r$rArBr:rKr�rdrCr2r0r�r�r�r�r�r�rDr�rGrIr7r�rLr�r�r�r�r�r�r�r�r�r�s	        @r�Btest_finish_running_state_exited_too_quickly_due_to_clock_rollbackzRSubprocessTests.test_finish_running_state_exited_too_quickly_due_to_clock_rollback�s�����.���g�z�;�-7�2�G���=�=��(��2:������*�*�3�/��b�)�����$&�4����!�!�Y�Y�[���3�%�&�.�.���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�L�	N�����,�,�b�1�����Q���#��!����������7�7�	9��������.�����+�+�.@�,�-O�P�����)�)�=�+@�+@�Arc���t�}t|ddd��}|j|�}||jjj
d<ddd�}||_dg|j_tj�d	z|_	d
dl
m}d
dlm
}|j|_g�|j!|j"�fd
��d|_|j'dd�|j)|j*�|j-|j$d
�|j-|j.|�|j-|ji�|j-|j0i�|j-|j2j4d
d�|j-|j2j4dd�|j-|j6d�|j-t9��d��d
}|j-|j:|j<�|j-|j>d�|j-|j@ddg�|j-|jB|j�y)Nr}r~rjr�r�rwr�r]r�rr/r�c�&���j|�Srr�r�s �rr�zOSubprocessTests.test_finish_running_state_laststart_in_future.<locals>.<lambda>�r�rrar�r�Tr�r�r�r�s	        @r�-test_finish_running_state_laststart_in_futurez=SubprocessTests.test_finish_running_state_laststart_in_future�s
����.���g�z�;�-7�9���=�=��(��2:������*�*�3�/��b�)�����$&�4����!�!�Y�Y�[�4�/���3�%�&�.�.���������1�1�3H�I��������Q������)�)�*�������q�)�����4�4�e�<��������,�����-�-�r�2�������,�,�Q�/�@�	A�	
������,�,�Q�/�L�	N�����,�,�b�1�����Q���#��!����������7�7�	9��������.�����+�+�.@�,�-O�P�����)�)�=�+@�+@�Arc���	�ddlm}g�	|j|j�	fd��|j|j�	fd��t�}t
|dddd�	�}|j|�}dd
lm	}|j|_t�}||_
|jdd�|jt!�	�d
��	\}}|j|j"|j$�|j|j"|j�|j|j&|�|j|j|�|j|jd�y)Nrr�c�&���j|�Srr�r�s �rr�zOSubprocessTests.test_finish_with_current_event_sends_rejected.<locals>.<lambda>�r�rc�&���j|�Srr�r�s �rr�zOSubprocessTests.test_finish_with_current_event_sends_rejected.<locals>.<lambda>�s���a�h�h�q�k�rr}r~rjr3r�r/r�rar�)r�r�r�r��EventRejectedEventr	r
r$r2r0r�r�rr�r�r7r�r�r��process)
rr�rBrArOr0r�r�r�r�s
         @r�-test_finish_with_current_event_sends_rejectedz=SubprocessTests.test_finish_with_current_event_sends_rejected�s$���%�������1�1�3H�I�����2�2�4I�J��.���g�z�;�-7�2�G���=�=��(��3�&�.�.�������������Q������Q���#���������)�)��7�7�	9�����)�)�6�+D�+D�E��������2�������u�-��������.rc��t�}t|dd�}|j|�}|j�|j	|j
d�y)NrZr[�r	r
r$�set_uidr7r�rNs    r�test_set_uid_no_uidz#SubprocessTests.test_set_uid_no_uidsG���.���g�v�w�7���=�=��(����������-�-�t�4rc���t�}t|ddd��}|j|�}|j�}|j	|j
d�|j	|d�y)NrZr[rar�r�)rrBrArOr�s     r�test_set_uidzSubprocessTests.test_set_uid
s[���.���g�v�w�A�>���=�=��(����� ������-�-�q�1�����d�#rc�2�t�}t|dddd��}|j|�}t|dddd��}|j|�}t|dddd	��}|j|�}|||g}|j�|j	||||g�y)
Nr}r~rjra)r?�priority�	notthere1r��	notthere2r�)r	r
r$�sortr7)rrBrArO�	instance1�	instance2r�s       r�test_cmp_bypriorityz#SubprocessTests.test_cmp_byprioritys����.���g�z�;�-7�'(�*���=�=��(���g�{�K�-7�'(�*���M�M�&�)�	��g�{�K�-7�'(�*���M�M�&�)�	�
��)�,��	��������X�y�)�<�=rc��ddlm}g}|j|j|j�ddlm}m}t�}|j|_
t|ddd�}|j|�}d|_
|j|_|j!�|j#|j|j�|j#|g�y)Nrr��r0�SupervisorStatesr��/bin/process)r�r�r�r�r�r2r0rr	�SHUTDOWN�moodr
r$rCr|r��
transitionr7)rr��emitted_eventsr0rrB�pconfigr�s        r�7test_transition_stopped_to_starting_supervisor_stoppingzGSubprocessTests.test_transition_stopped_to_starting_supervisor_stopping+s���%�������1�1�>�3H�3H�I�E��.��'�0�0����w�	�9�^�L���-�-��(�����%�-�-��
�����������
�(=�(=�>������,rc��
�ddlm}g�
�
fd�}|j|j|�ddlm}m}t�}|j|_	t|ddd�}|j|�}d|_|j|_|j�|j!|j|j"�|j!t%�
�d��
d\}}	|j!|j&|j(�|j!|j*|j�|j!|	|j"�y)Nrr�c�T���j||jjf�yr�r�r�r���e�emitted_events_with_statess �r�
subscriberzZSubprocessTests.test_transition_stopped_to_starting_supervisor_running.<locals>.subscriber?����&�-�-�q�!�)�)�/�/�.B�Crrr�rra)r�r�r�r�r2r0rr	r�rr
r$rCr|r�rr7r;r�r�r�r��rr�rr0rrBr
r�r��state_when_event_emittedrs          @r�6test_transition_stopped_to_starting_supervisor_runningzFSubprocessTests.test_transition_stopped_to_starting_supervisor_running<s���%�%'�"�	D�����1�1�:�>�E��.��'�/�/����w�	�9�^�L���-�-��(�����%�-�-��
�����������
�(>�(>�?�����7�8�!�<�*D�Q�*G�'��'�������&�*J�*J�K�����)�)�=�+@�+@�A����1�=�3I�3I�Jrc��ddlm}g}|j|j|j�ddlm}m}t�}|j|_
t|ddd�}ddlm
}||_|j|�}d|_d|_|j$|_|j)�|j+|j&|j$�|j-|j"�|j+|g�y)	Nrr�rr�r��RestartUnconditionallyraT)r�r�r�r�r�r2r0rr	rrr
�supervisor.datatypesr�autorestartr$rCr��EXITEDr�rr7rS)	rr�r	r0rrBr
rr�s	         r�6test_transition_exited_to_starting_supervisor_stoppingzFSubprocessTests.test_transition_exited_to_starting_supervisor_stoppingRs���%�������1�1�>�3H�3H�I�E��.��'�0�0����w�	�9�^�L��?�4����-�-��(�����"���%�,�,��
�����������
�(<�(<�=�����+�+�,������,rc��
�ddlm}g�
�
fd�}|j|j|�ddlm}t
�}t|ddd�}ddlm	}||_
|j|�}d|_|j|_|j�|j!|j|j"�|j!t%�
�d��
d\}}	|j!|j&|j(�|j!|j*|j�|j!|	|j"�y)	Nrr�c�T���j||jjf�yrrrs �rrz`SubprocessTests.test_transition_exited_to_starting_uncond_supervisor_running.<locals>.subscriberjrrr/r�rrra)r�r�r�r�r2r0r	r
rrrr$rCrr�rr7r;r�r�r�r�)rr�rr0rBr
rr�r�rrs          @r�<test_transition_exited_to_starting_uncond_supervisor_runningzLSubprocessTests.test_transition_exited_to_starting_uncond_supervisor_runninggs	���%�%'�"�	D�����1�1�:�>�3��.���w�	�9�^�L��?�4����-�-��(�����%�,�,��
�����������
�(>�(>�?�����7�8�!�<�*D�Q�*G�'��'�������&�*J�*J�K�����)�)�=�+?�+?�@����1�=�3I�3I�Jrc��
�ddlm}g�
�
fd�}|j|j|�ddlm}t
�}t|ddd�}ddlm	}||_
|j|�}d|_|j|_d	|_|j!�|j#|j|j$�|j#t'�
�d��
d\}}	|j#|j(|j*�|j#|j,|j�|j#|	|j$�y)
Nrr�c�T���j||jjf�yrrrs �rrz`SubprocessTests.test_transition_exited_to_starting_condit_supervisor_running.<locals>.subscriber�rrr/r�r��RestartWhenExitUnexpectedra�bogus)r�r�r�r�r2r0r	r
rr$rr$rCrr�r�rr7r;r�r�r�r�)rr�rr0rBr
r$r�r�rrs          @r�<test_transition_exited_to_starting_condit_supervisor_runningzLSubprocessTests.test_transition_exited_to_starting_condit_supervisor_running~s���%�%'�"�	D�����1�1�:�>�3��.���w�	�9�^�L��B�7����-�-��(�����%�,�,��
�$�������������
�(>�(>�?�����7�8�!�<�*D�Q�*G�'��'�������&�*J�*J�K�����)�)�=�+?�+?�@����1�=�3I�3I�Jrc��ddlm}g}|j|j|j�ddlm}t�}t|ddd�}ddl	m
}||_|j|�}d|_
|j|_d|_|j#�|j%|j|j�|j%|g�y)Nrr�r/r�rr#ra)r�r�r�r�r�r2r0r	r
rr$rr$rCrr�r�rr7)rr�r	r0rBr
r$r�s        r�@test_transition_exited_to_starting_condit_fls_supervisor_runningzPSubprocessTests.test_transition_exited_to_starting_condit_fls_supervisor_running�s���%�������1�1�>�3H�3H�I�3��.���w�	�9�^�L��B�7����-�-��(�����%�,�,��
��������������
�(<�(<�=������,rc���ddlm}g�|j|j�fd��ddlm}m}t�}|j|_	t|ddd�}|j|�}d|_d|_
d|_|j|_|j#�|j%|j |j�|j%�g�y)Nrr�c�&���j|�Srr��r�r	s �rr�zYSubprocessTests.test_transition_backoff_to_starting_supervisor_stopping.<locals>.<lambda>�����^�=R�=R�ST�=U�rrr�rra)r�r�r�r�r2r0rr	rrr
r$rCrFrJr�r�rr7�rr�r0rrBr
r�r	s       @r�7test_transition_backoff_to_starting_supervisor_stoppingzGSubprocessTests.test_transition_backoff_to_starting_supervisor_stopping�s����%�������1�1�3U�V�E��.��'�0�0����w�	�9�^�L���-�-��(�������
����%�-�-��
�����������
�(=�(=�>������,rc��
�ddlm}g�
�
fd�}|j|j|�ddlm}m}t�}|j|_	t|ddd�}|j|�}d|_d|_
d|_|j|_|j#�|j%|j |j&�|j%t)�
�d��
d\}}	|j%|j*|j,�|j%|j.|j�|j%|	|j&�y)Nrr�c�T���j||jjf�yrrrs �rrzZSubprocessTests.test_transition_backoff_to_starting_supervisor_running.<locals>.subscriber�rrrr�rra)r�r�r�r�r2r0rr	r�rr
r$rCrFrJr�r�rr7r;r�r�r�r�rs          @r�6test_transition_backoff_to_starting_supervisor_runningzFSubprocessTests.test_transition_backoff_to_starting_supervisor_running�s���%�%'�"�	D�����1�1�:�>�E��.��'�/�/����w�	�9�^�L���-�-��(�������
����%�-�-��
�����������
�(>�(>�?�����7�8�!�<�*D�Q�*G�'��'�������&�*J�*J�K�����)�)�=�+@�+@�A����1�=�3I�3I�Jrc���ddlm}g�|j|j�fd��ddlm}m}t�}|j|_	t|ddd�}|j|�}d|_t|_d|_|j |_|j%�|j'|j"|j �|j'�g�y)Nrr�c�&���j|�Srr�r+s �rr�z_SubprocessTests.test_transition_backoff_to_starting_supervisor_running_notyet.<locals>.<lambda>�r,rrr�rra)r�r�r�r�r2r0rr	r�rr
r$rCrrFrJr�r�rr7r-s       @r�=test_transition_backoff_to_starting_supervisor_running_notyetzMSubprocessTests.test_transition_backoff_to_starting_supervisor_running_notyet�s����%�������1�1�3U�V�E��.��'�/�/����w�	�9�^�L���-�-��(�������
����%�-�-��
�����������
�(=�(=�>������,rc�h�	�ddlm}g�	�	fd�}|j|j|�ddlm}t
�}t|ddd�}|j|�}d|_	d|_
d|_d|_d|_
d	|_d
|_|j |_|j%�|j'|jd�|j'|jd�|j)|j�|j'|j*j,dd�|j't/�	�d��	d\}}|j'|j0|j2�|j'|j4|j �|j'||j6�y)Nrr�c�T���j||jjf�yrrrs �rrzGSubprocessTests.test_transition_starting_to_running.<locals>.subscriber�rrr/r�rraF�abc�defz_success: process entered RUNNING state, process has stayed up for > than 10 seconds (startsecs))r�r�r�r�r2r0r	r
r$rJrFr�rCrD�
stdout_buffer�
stderr_bufferr;r�rr7rGr�r�r�r�r�r�r��
rr�rr0rBr
r�r�rrs
         @r�#test_transition_starting_to_runningz3SubprocessTests.test_transition_starting_to_running�sy���%�%'�"�	D�����1�1�:�>�3��.���w�	�9�^�L���-�-��(�������
�#��������� %��� %���%�.�.��
�����	
������!�,��������*�����,�,�-�������,�,�Q�/�G�	H�	
����7�8�!�<�*D�Q�*G�'��'�������&�*I�*I�J�����)�)�=�+A�+A�B����1�=�3H�3H�Irc����ddlm}g��fd�}|j|j|�ddlm}t
j�dz}t�}d}t|ddd|�	�}|j|�}d
|_
d
|_d|_||_
d
|_d|_d
|_|j"|_|j'�|j)|j$|j"�|j+|j|k�t
j,|d
z�|j'�|j)|jd�|j)|jd�|j/|j�|j)|j$|j0�|j)|j2j4ddj7|��|j)t9��d
��d\}	}
|j)|	j:|j<�|j)|	j>|j"�|j)|
|j0�y)Nrr�c�T���j||jjf�yrrrs �rrz[SubprocessTests.test_transition_starting_to_running_laststart_in_future.<locals>.subscriberrrr/r�r�r�r)r�raFr7r8z_success: process entered RUNNING state, process has stayed up for > than {} seconds (startsecs)) r�r�r�r�r2r0rdr	r
r$rJrFr�rCrDr9r:r;r�rr7rSrerGr�r�r��formatr�r�r�r�)rr�rr0r�rB�test_startsecsr
r�r�rrs           @r�7test_transition_starting_to_running_laststart_in_futurezGSubprocessTests.test_transition_starting_to_running_laststart_in_futures���%�%'�"�	D�����1�1�:�>�3��i�i�k�D�(���.�����w�	�9�^�)7�9���-�-��(�������
�#���'������ %��� %���%�.�.��
�	����	
������
�(>�(>�?�	
����)�)�K�7�8�	
�
�
�>�A�%�&�	����	
������!�,��������*�����,�,�-�������
�(=�(=�>�������,�,�Q�/�G�GM�v�n�G]�	_�	
����7�8�!�<�*D�Q�*G�'��'�������&�*I�*I�J�����)�)�=�+A�+A�B����1�=�3H�3H�Irc�Z�
�ddlm}g�
�
fd�}|j|j|�ddlm}t
j�dz}t�}t|ddd�}|j|�}d|_
||_d|_|j|_|j�|j!|j|j�|j#|j|k�|j�|j!|j|j$�|j!t'�
�d��
d\}}	|j!|j(|j*�|j!|j,|j�|j!|	|j$�y)	Nrr�c�T���j||jjf�yrrrs �rrzWSubprocessTests.test_transition_backoff_to_starting_delay_in_future.<locals>.subscriberCrrr/r�r�rra)r�r�r�r�r2r0rdr	r
r$rCrFrJr�r�rr7rSr;r�r�r�r�)rr�rr0r�rBr
r�r�rrs          @r�3test_transition_backoff_to_starting_delay_in_futurezCSubprocessTests.test_transition_backoff_to_starting_delay_in_future@s_���%�%'�"�	D�����1�1�:�>�3��i�i�k�D�(���.���w�	�9�^�L���-�-��(�����#��
����%�-�-��
�	����	
������
�(=�(=�>�	
����
�
��3�4�	����������
�(>�(>�?�����7�8�!�<�*D�Q�*G�'��'�������&�*J�*J�K�����)�)�=�+@�+@�A����1�=�3I�3I�Jrc�Z�	�ddlm}g�	�	fd�}|j|j|�ddlm}t
�}t|ddd�}|j|�}d|_	d|_
d|_d	|_d
|_
d|_|j|_|j#�|j%|jd�|j%|jd�|j'|j�|j%|j(j*dd�|j%t-�	�d��	d\}}|j%|j.|j0�|j%|j2|j�|j%||j4�y)
Nrr�c�T���j||jjf�yrrrs �rrzDSubprocessTests.test_transition_backoff_to_fatal.<locals>.subscriberjrrr/r�rrai'Fr7r8zHgave up: process entered FATAL state, too many start retries too quickly)r�r�r�r�r2r0r	r
r$rCrJrFr�r9r:r�r�rr7rSr�r�r�r�r�r�r�r;s
         @r� test_transition_backoff_to_fatalz0SubprocessTests.test_transition_backoff_to_fatalgsn���%�%'�"�	D�����1�1�:�>�3��.���w�	�9�^�L���-�-��(����������
�#��� %��� %���%�-�-��
�����	
������!�,��������*�����+�+�,�������,�,�Q�/�0�	1�	
����7�8�!�<�*D�Q�*G�'��'�������&�*G�*G�H�����)�)�=�+@�+@�A����1�=�3F�3F�Grc��ddlm}g}|j|j|j�ddlm}t�}t|ddd�}|j|�}t|_|j|_
|j�|j|j|j�|j|g�y)Nrr�r/r�r)r�r�r�r�r�r2r0r	r
r$rrFr�r�rr7�rr�r	r0rBr
r�s       r�'test_transition_stops_unkillable_notyetz7SubprocessTests.test_transition_stops_unkillable_notyet�s���%�������1�1�>�3H�3H�I�3��.���w�	�9�^�L���-�-��(����
�%�.�.��
�����������
�(>�(>�?������,rc��ddlm}g}|j|j|j�ddlm}t�}t|ddd�}|j|�}d|_
d|_d|_|j|_|j�|j!|j�|j#|jd�|j%|j|j�|j%|j&j(dd�|j%|j*dt,j.�|j%|g�y)	Nrr�r/r�rraFz"killing 'process' (1) with SIGKILL)r�r�r�r�r�r2r0r	r
r$rFrDrIr�r�rrSrkr7r�r�rwr_r�rIs       r� test_transition_stops_unkillablez0SubprocessTests.test_transition_stops_unkillable�s	��%�������1�1�>�3H�3H�I�3��.���w�	�9�^�L���-�-��(����
�������%�.�.��
�����������(����G�M�M�1�-�������
�(>�(>�?�������,�,�Q�/�=�	?�������q�)�6�>�>�:������,rc��t�}t|dd�}|j|�}d|_|j	|jd�d�y)NrZr[r3F)r	r
r$r�r7�change_staterNs    r�2test_change_state_doesnt_notify_if_no_state_changezBSubprocessTests.test_change_state_doesnt_notify_if_no_state_change�sG���.���g�v�w�7���=�=��(���������.�.�r�2�E�:rc��ddlm}t�}t|dd�}|j	|�}d|_|j
|j�|j|jd�|j|jdkD�y)Nrr/rZr[r3ra)r2r0r	r
r$r�rNr�r7rJrSrF)rr0rBrArOs     r�(test_change_state_sets_backoff_and_delayz8SubprocessTests.test_change_state_sets_backoff_and_delay�sn��3��.���g�v�w�7���=�=��(��������m�3�3�4�����)�)�1�-��������*�+rN)]r%r&r'rr$r,r:rPrWrdrhrnrtrxr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	r
rrrr r.r1r<r>rHrLrRrUrqrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr r&r(r.r1r4r<rArDrGrJrLrOrQr�rrrrs����2��N�2�(G�G�F�
E�?�?�?�=�L�;�J�6�1�
9�B�
@�L�.L�4L�2L�6L�6L�6A�,1�(A�.A�"7�.1�(1�(	C�%�,A�.A�,9�
9�9�J�"9�):�V<�&<� 
6�6�" 6�DI�$+�L�&L�&L�6M�2 �"K�  �"B�*	0�G�$�.K�2C�>B�@'B�RC�DB�B#B�J/�.5�$�>�,-�"K�,-�*K�.K�0-�$-�$K�0-�$"J�H6J�p%K�N!H�F-� -�.;�,rrc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zejed
eej"���d��Zejed
eej&���d��Zejed
ed���d��Zy)�FastCGISubprocessTestsc��ddlm}|S)Nr)�FastCGISubprocess)rrU)rrUs  rrz&FastCGISubprocessTests._getTargetClass����8� � rc�.�|j�|i|��Srr r!s   rr$zFastCGISubprocessTests._makeOne�r%rc��ddlm}|�yr'r)r+s  rr,zFastCGISubprocessTests.tearDown�r-rc��t�}d|_t|ddd��}|j|�}|j	t
|j�y�Nrr�r�rar�)r	r�r
r$rr�NotImplementedErrorr�rNs    r�
test_no_groupz$FastCGISubprocessTests.test_no_group�sD���.������g�v�/?�Q�G���=�=��(�����-�x�~�~�>rc���t�}d|_t|ddd��}|j|�}t	t|��|_|jt|j�yrZ)
r	r�r
r$rrr-rrr[r�rNs    r�test_no_socket_managerz-FastCGISubprocessTests.test_no_socket_manager�sV���.������g�v�/?�Q�G���=�=��(��*�+<�W�+E�F������-�x�~�~�>rc��t�}d|_t|ddd��}|j|�}t	d�}t|ddd|�}t
|�|_|j�}|j|d�|jt|j�d	�|j|jdd�|j|j|jd
d�|j|j|jdd�|jt|j�|jd	z
�y)
Nrr�r�rar�r6�whatever��r��child_stdout�child_stderrr�)r	r�r
r$rrrr-r�r7r�r�rKr�r��rrBrArO�sock_config�gconfigr�s       r�test_prepare_child_fdsz-FastCGISubprocessTests.test_prepare_child_fds�s���.������g�v�/?�Q�G���=�=��(��'��*��&�w�
�C��'2�4��.�w�7������!�������&�����W�]�]�+�Q�/�������q�)�1�-�������x�~�~�n�'E�F��J�������x�~�~�n�'E�F��J�����W�/�/�0�'�.�.�1�2D�Erc��t�}d|_t|ddd��}d|_|j	|�}td�}t
|dd	d|�}t|�|_|j�}|j|d�|jt|j�d
�|j|jdd�|jt|j�|jdz
�y)Nrr�r�rar�T�
r`rar�r�)r	r�r
r0r$rrrr-r�r7r�r�r�r�rds       r�(test_prepare_child_fds_stderr_redirectedz?FastCGISubprocessTests.test_prepare_child_fds_stderr_redirected�s����.������g�v�/?�Q�G��!%����=�=��(��'��+��&�w�
�C��'2�4��.�w�7������!�������&�����W�]�]�+�Q�/�������r�*�A�.�����W�/�/�0�'�.�.�1�2D�Erc�@�t�}t|ddd��}|j|�}td�}t	|ddd|�}t|�|_|j|jdu�|j�|j|jdu�y)Nr�r�rar�r6r`ra)r	r
r$rrrr-rS�	fcgi_sock�before_spawnrG)rrBrArOrerfs      r�!test_before_spawn_gets_socket_refz8FastCGISubprocessTests.test_before_spawn_gets_socket_ref�s����.���g�v�/?�Q�G���=�=��(��'��*��&�w�
�C��'2�4��.�w�7�������*�*�d�2�3���������+�+�t�3�4rc��t�}t|ddd��}|j|�}d|_|j	�|j|jdu�y)Nr�r�rar��hello)r	r
r$rl�after_finishrSrNs    r�$test_after_finish_removes_socket_refz;FastCGISubprocessTests.test_after_finish_removes_socket_ref
sS���.���g�v�/?�Q�G���=�=��(��$�����������*�*�d�2�3rr�)�return_valuec��t�}t|ddd��}|j|�}t�|_|jtjtj�}|jtj|d�|jd|jjd�tj
}|jd|jd�|jdd}|jdd	}|jtj|d
�|jtj|d�y)Nr�r�rar�z3FastCGISubprocess.finish() did not pass thru resultz0FastCGISubprocess.after_finish() not called oncez#Subprocess.finish() not called oncerr�z*Subprocess.finish() pid arg was not passedz*Subprocess.finish() sts arg was not passed)r	r
r$rrqr�rrDrpr7�
finish_result�
call_countr�	call_args)rrBrArOr��finish_mock�pid_arg�sts_args        r�test_finish_overridez+FastCGISubprocessTests.test_finish_overrides
���.���g�v�/?�Q�G���=�=��(�� $����������x�|�|�<������/�/��M�	O�����H�1�1�<�<�N�	P� �'�'������K�2�2�A�	C��'�'��*�1�-���'�'��*�1�-��������w�H�	J�������w�H�	Jrr�c��t�}t|ddd��}|j|�}t�|_|j�}|j
tj|d�|j
d|jjd�tj
}|j
d|jd�y)Nr�r�rar�z2FastCGISubprocess.spawn() did not pass thru result�0FastCGISubprocess.before_spawn() not called oncez"Subprocess.spawn() not called once)r	r
r$rrmr�r7r�ppidrvr)rrBrArOr��
spawn_mocks      r�test_spawn_override_successz2FastCGISubprocessTests.test_spawn_override_success)s����.���g�v�/?�Q�G���=�=��(�� $�������!���������L�	N�����H�1�1�<�<�N�	P��%�%�
�����J�1�1�@�	BrNc�R�t�}t|ddd��}|j|�}t�|_d|_|j
�}|jd|d�|jd|jjd�|jd|j
d�y)	Nr�r�rar�znuke me on errorz2FastCGISubprocess.spawn() did return None on errorr}z:FastCGISubprocess.spawn() did not remove sock ref on error)	r	r
r$rrmrlr�r7rvr�s     r�test_spawn_errorz'FastCGISubprocessTests.test_spawn_error9s����.���g�v�/?�Q�G���=�=��(�� $����/������!������v�L�	N�����H�1�1�<�<�N�	P�����x�1�1�L�	Nr)r%r&r'rr$r,r\r^rgrjrnrrr�objectrrrrur{r~r�r�r�rrrSrS�s���!�2��?�?�F�"F� 
5�4��U�\�\�*�h��(�:P�:P�(Q�R�J�S�J�*�U�\�\�*�g�t����'G�H�B�I�B��U�\�\�*�g�t��'>�?�N�@�NrrSc�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�ProcessGroupBaseTestsc��ddlm}|S)Nr)�ProcessGroupBase)rr�)rr�s  rrz%ProcessGroupBaseTests._getTargetClassIs��7��rc�.�|j�|i|��Srr )rr�r#s   rr$zProcessGroupBaseTests._makeOneMs��%�t�#�#�%�t�2�r�2�2rc��t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_|j�}|j||g�y�Nrr/�process1�
/bin/process1�r���pconfigs)r	r2r0r
rr�rr$�	processes�get_unstopped_processesr7)rrBr0�pconfig1r�rfr-�	unstoppeds        r�test_get_unstopped_processesz2ProcessGroupBaseTests.test_get_unstopped_processesPsv���.��3����Z��P����
�0F�0F�G��#�G�x�j�A���
�
�g�&��&��2����1�1�3�	�����X�J�/rc���t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_|j�yr�)
r	r2r0r
rr�rr$r��
before_remove�rrBr0r�r�rfr-s       r�test_before_removez(ProcessGroupBaseTests.test_before_remove[sb���.��3����Z��P����
�0F�0F�G��#�G�x�j�A���
�
�g�&��&��2���
���rc��ddlm}t�}t|ddd�}t	||j
��}t|ddd�}t	||j��}t|ddd	�}t	||j��}t|d
d
d�}	t	|	|j��}
d|
_	d
|
_
t|||||	g��}|j|�}||||
d�|_
|j�|j|j d�|j|j d�|j|j d�|j|
j d�|j|
j"|j$�y)Nrr/r�r�r��process2�
/bin/process2�process3z
/bin/process3�process4z
/bin/process4��r3r�)r�r�r�r�FT)r2r0r	r
rr|r�r;r�rFrJrr$r��stop_allr7�stop_calledr�r�)
rr0rBr�r��pconfig2r��pconfig3r��pconfig4r�rfr-s
             r�
test_stop_allz#ProcessGroupBaseTests.test_stop_alles^��3��.�����Z��P����
�0E�0E�F�����Z��P����
�0E�0E�F�����Z��P����
�0F�0F�G�����Z��P����
�0E�0E�F��������#����(�H�=�?���
�
�g�&��'/�X�&.�8�E���	��������-�-�u�5�����-�-�t�4�����-�-�t�4�����-�-�u�5��������)<�)<�=rc�z�t�}ddlm}t|ddd�}t	||j
��}ddi|_t|ddd�}t	||j
��}d	di|_t|||g�
�}|j|�}||d�|_	|j�}	|j|	ddd��y)
Nrr/r�r�r�r4r�r�r5r�)r�r�)r4r5)r	r2r0r
rr�rLrr$r��get_dispatchersr7)
rrBr0r�r�r�r�rfr-r�s
          r�test_get_dispatchersz*ProcessGroupBaseTests.test_get_dispatchers�s����.��3����Z��P����
�0F�0F�G�� !�$�x������Z��P����
�0F�0F�G�� !�$�x���#�G�x��6J�K���
�
�g�&��(0�h�H����%�%�'������D�D�!1�2rc��t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_|j�|j|jd�y�Nrr/r�r�r�r�T)r	r2r0r
rr�rr$r�rbr7rcr�s       rrdz%ProcessGroupBaseTests.test_reopenlogs�sx���.��3����Z��P����
�0F�0F�G��#�G�x�j�A���
�
�g�&��%�x�0���
��������/�/��6rc��t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_|j�|j|jd�yr�)r	r2r0r
rr�rr$r�rfr7�logsremovedr�s       rrhz%ProcessGroupBaseTests.test_removelogs�sx���.��3����Z��P����
�0F�0F�G��#�G�x�j�A���
�
�g�&��%�x�0���
��������-�-�t�4rc��t�}t|�}|j|�}t|�}|j|�}t|�}|j|�}d|j_d|j_d|j_||g}|j�|j
|||g�|j||�|j
||�y)Nr5ra)r	rr$rAr�r�r7rk)	rrB�gconfig1�group1�gconfig2�group2�config3�group3r�s	         r�test_ordering_and_comparisonz2ProcessGroupBaseTests.test_ordering_and_comparison�s����.��$�W�-�����x�(��$�W�-�����x�(��#�G�,�����w�'��!"��
�
��!"��
�
��!"��
�
��
�V���	��������V�V�,�-����F�F�+������(rN)r%r&r'rr$r�r�r�r�rdrhr�r�rrr�r�Hs/�� �3�	0��>�<
3�	7�	5�)rr�c��eZdZd�Zd�Zd�Zy)�ProcessGroupTestsc��ddlm}|S)Nr)�ProcessGroup)rr�)rr�s  rrz!ProcessGroupTests._getTargetClass�s��3��rc���t�}t|�}|j|�}t|�}|j	d|v�|j	|jd�|�y)Nzsupervisor.process.ProcessGroup�named whatever>�r	rr$rRrSrU)rrBrfr-rVs     rrWzProcessGroupTests.test_repr�sT���.��#�G�,���
�
�g�&����K�����9�Q�>�?�����
�
�#4�5�q�9rc��t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_|j�|j|jd�yr�)r	r2r0r
rr�rr$r�rr7�transitionedr�s       r�test_transitionz!ProcessGroupTests.test_transition�sx���.��3����Z��P����
�0F�0F�G��#�G�x�j�A���
�
�g�&��%�x�0���
��������.�.��5rN)r%r&r'rrWr�r�rrr�r��s���:�	6rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�FastCGIProcessGroupTestsc��ddlm}|S)Nr)�FastCGIProcessGroup)rr�)rr�s  rrz(FastCGIProcessGroupTests._getTargetClass�s��:�"�"rc�4�|j�}||fi|��Srr )rrA�kwargs�clss    rr$z!FastCGIProcessGroupTests._makeOne�s ���"�"�$���6�$�V�$�$rc��t�}t|�}d|_Gd�dt�}|j	||��y)Nc��eZdZd�Zd�Zy)�VFastCGIProcessGroupTests.test___init__without_socket_error.<locals>.DummySocketManagerc��yrr��rrAr�s   r�__init__z_FastCGIProcessGroupTests.test___init__without_socket_error.<locals>.DummySocketManager.__init__���rc��yrr��rs r�
get_socketzaFastCGIProcessGroupTests.test___init__without_socket_error.<locals>.DummySocketManager.get_socket�r�rN)r%r&r'r�r�r�rr�DummySocketManagerr��s��4�&rr���
socketManager)r	r�
socket_configr�r$�rrBrfr�s    r�!test___init__without_socket_errorz:FastCGIProcessGroupTests.test___init__without_socket_error�s:���.��#�G�,�� $���	'��	'�	
�
�
�g�-?�
�@rc��t�}t|�}d|_Gd�dt�}|j	t
|j||��y)Nc��eZdZd�Zd�Zd�Zy)�SFastCGIProcessGroupTests.test___init__with_socket_error.<locals>.DummySocketManagerc��yrr�r�s   rr�z\FastCGIProcessGroupTests.test___init__with_socket_error.<locals>.DummySocketManager.__init__�r�rc��td��)Nr5)�KeyErrorr�s rr�z^FastCGIProcessGroupTests.test___init__with_socket_error.<locals>.DummySocketManager.get_socket�s���q�k�!rc��y)NrAr�r�s rrAzZFastCGIProcessGroupTests.test___init__with_socket_error.<locals>.DummySocketManager.config�s��rN)r%r&r'r�r�rAr�rrr�r��s��4�
"�
 rr�r�)r	rr�r�rr�
ValueErrorr$r�s    r�test___init__with_socket_errorz7FastCGIProcessGroupTests.test___init__with_socket_error�sK���.��#�G�,�� $���	 ��	 �	
�����M�M�7�2D�	�	rN)r%r&r'rr$r�r�r�rrr�r��s��#�%�A�
rr�c�~�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�EventListenerPoolTestsc��ddlm}|�yr'r)r+s  r�setUpzEventListenerPoolTests.setUp�r-rc��ddlm}|�yr'r)r+s  rr,zEventListenerPoolTests.tearDown�r-rc��ddlm}|S)Nr)�EventListenerPool)rr�)rr�s  rrz&EventListenerPoolTests._getTargetClassrVrc���t�}t|�}Gd�d�}|f|_|j|�}ddlm}|j
t|j�d�|j
|jd||jf�|j
|jd|j|jf�|j
|jd�y)Nc��eZdZy)�3EventListenerPoolTests.test_ctor.<locals>.EventTypeN�r%r&r'r�rr�	EventTyper����rr�rr�r�rar])
r	r�pool_eventsr$r�r�r7r��	callbacks�_acceptEventr��handle_rejected�serial�rrBrfr��poolr�s      rrPz EventListenerPoolTests.test_ctors����.��#�G�,��	�	�(�l����}�}�W�%��%�����V�-�-�.��2�����)�)�!�,�
��)�)�*�	,�����)�)�!�,�
�
&�
&��(<�(<�=�	?�������b�)rc�4�t�}t|�}Gd�d�}|f|_|j|�}ddlm}|j
t|j�d�|j�|j
t|j�d�y)Nc��eZdZy)�UEventListenerPoolTests.test_before_remove_unsubscribes_from_events.<locals>.EventTypeNr�r�rrr�r�r�rr�rr�r�)
r	rr�r$r�r�r7r�r�r�r�s      r�+test_before_remove_unsubscribes_from_eventszBEventListenerPoolTests.test_before_remove_unsubscribes_from_eventssz���.��#�G�,��	�	�(�l����}�}�W�%��%�����V�-�-�.��2���������V�-�-�.��2rc�\�t�}d|_t|�}d|_|j	|�}ddlm}|j|jjddd�}|jdd	�\}}|j�}|j|dd
�|j|d	d�|j|dd
�|j|dd�|j|dd�|j|dd�|j|dd�|j|d�y)N�thesupervisorname�thepoolnamerr��P�zpayload
�
razver:3.0zserver:thesupervisornamer�z	serial:80r�zpool:thepoolnamer4z
poolserial:20r5z&eventname:PROCESS_COMMUNICATION_STDOUTr�zlen:8)r	�
identifierrr�r$r�r��_eventEnvelope�
EventTypes�PROCESS_COMMUNICATION_STDOUTr�r7)	rrBrfr�r�r��header�payload�headerss	         r�test__eventEnvelopez*EventListenerPoolTests.test__eventEnvelope s���.��0���#�G�,��$����}�}�W�%��%��$�$����:�:�B��K�Q�� �,�,�t�Q�/�����,�,�.��������Y�/�������%?�@�������[�1�������%7�8�������_�5�������%M�N�������W�-�����+�.rc����t�}t|�}t|ddd�}t|��t||g��}|j	|�}d�i|_ddg|_Gd�d��G��fd�d�}|�}d|_|j|�|j|j|jddg�y)	Nr�r�r�c��eZdZdZy)�LEventListenerPoolTests.test_handle_rejected_no_overflow.<locals>.DummyEvent1r7N)r%r&r'r�r�rr�DummyEvent1r=s���Frrc�$��eZdZW�ZW��Zy)�LEventListenerPoolTests.test_handle_rejected_no_overflow.<locals>.DummyEvent2N)r%r&r'r�r�)rr�s��r�DummyEvent2r	?s����G��M�Err
ra)r	rr
rr$r��event_bufferr�r�r7r�)	rrBrfr�r�r
�
dummyeventrr�s	       @@r� test_handle_rejected_no_overflowz7EventListenerPoolTests.test_handle_rejected_no_overflow4s�����.��#�G�,�����Z��P����)��#�G�x�j�A���}�}�W�%��$�h�/���!�4�L���	�	�	"�	"�!�]�
��
�����Z�(�����*�*�Z�-=�-=�t�T�,J�Krc�X��
�t�}t|�}t|ddd�}t|��
t||g��}d|_|j|�}d�
i|_Gd�d��G��
fd�d�}�d	�}�d
�}�d�}|d�}	|||g|_|j|	�|jD�
cgc]}
|
j��}}
|j|gd
��|j|jjjjdd�ycc}
w)Nr�r�r�r�c��eZdZd�Zy)�WEventListenerPoolTests.test_handle_rejected_event_buffer_overflowed.<locals>.DummyEventc��||_yr�r�)rr�s  rr�z`EventListenerPoolTests.test_handle_rejected_event_buffer_overflowed.<locals>.DummyEvent.__init__Qs	��$��rN�r%r&r'r�r�rrrrPs��
%rrc���eZdZ��fd�Zy)�_EventListenerPoolTests.test_handle_rejected_event_buffer_overflowed.<locals>.DummyRejectedEventc�.���|_�|�|_yr)r�r�)rr�rr�s  ��rr�zhEventListenerPoolTests.test_handle_rejected_event_buffer_overflowed.<locals>.DummyRejectedEvent.__init__Ts���'���'��/��
rNr)rr�s��r�DummyRejectedEventrSs���
0rrrA�b�c�rejected)rrrrz9pool whatever event buffer overflowed, discarding event a)r	rr
r�buffer_sizer$r�rr�r�r7rArBr�r�)rrBrfr�r�r�event_a�event_b�event_c�	rej_eventr��serialsrr�s            @@r�,test_handle_rejected_event_buffer_overflowedzCEventListenerPoolTests.test_handle_rejected_event_buffer_overflowedGs����.��#�G�,�����Z��P����)��#�G�x�j�A������}�}�W�%��$�h�/���	%�	%�	0�	0��S�/���S�/���S�/��&�z�2�	�$�g�w�7������Y�'�&*�&7�&7�9��A�H�H�9��9�����"8�9�������,�,�3�3�8�8��;�G�	I��:s�D'c���t�}t|�}t|ddd�}ddlm}t||g��}|j|�}|jd}ttjtjtj��|_|j|_t�}|j!|�|j#�|j%|j|j�|j%|j&|g�|j%|j(j*dd�|j%|j(j*dd�y)	Nr�r�r��EventListenerStatesr�zUepipe occurred while sending event abc to listener process1, listener state unchangedraz<rebuffering event abc for pool whatever (buf size=0, max=10))r	rr
r2r$r$r�r�r�rPr�r��write_exception�READY�listener_staterr��dispatchr7rr�r�)rrBrfr�r$r�r�r�s        r�test_dispatch_pipe_errorz/EventListenerPoolTests.test_dispatch_pipe_errorcs���.��#�G�,�����Z��P��9�#�G�x�j�A���}�}�W�%���>�>�*�-��#*�5�;�;�+-�;�;�u�{�{�+C�$E�� �"5�";�";���������%� ��
�
������0�0�2E�2K�2K�L�����*�*�U�G�4�������,�,�Q�/�
1�	2�	
������,�,�Q�/�J�	Lrc��ddlm}t�}t|�}t	|ddd�}t||g��}|j|�}|jd}ddlm}|j|_
td�}|j|�|j|j|j�|j|jd|j�y)Nr)�GlobalSerialr�r�r�r#r`)rr+r	rr
r$r�r2r$r&r'rr�r7r��pool_serials)	rr+rBrfr�r�r�r$r�s	         r�1test__acceptEvent_attaches_pool_serial_and_serialzHEventListenerPoolTests.test__acceptEvent_attaches_pool_serial_and_serialys���3��.��#�G�,�����Z��P��#�G�x�j�A���}�}�W�%���>�>�*�-��9�"5�";�";����4� �����%� �������|�':�':�;�����+�+�J�7����Erc���t�}t|�}|j|�}t|�}|j	d|v�|j	|jd��y)Nz$supervisor.process.EventListenerPoolr�r�)rrBrfr�rVs     rrWz EventListenerPoolTests.test_repr�sR���.��#�G�,���}�}�W�%����J�����>�!�C�D�����
�
�#4�5�6rc���t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_t�}d|_
ddlm}|j|_
|j|�|j�|j!|j"d	�|j!|j$|g�y)
Nrr/r�r�r�r�rAr#T)r	r2r0r
rr;rr$r�rr�r$�BUSYr'r�rr7r�r�	rrBr0r�r�rfr�r�r$s	         r�test_transition_nobody_readyz3EventListenerPoolTests.test_transition_nobody_ready�s����.��3����Z��P����
�0F�0F�G��#�G�x�j�A���}�}�W�%��$�h�/���������9�"5�":�":������%� ���������.�.��5�����*�*�U�G�4rc�F�t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_t�}ddlm
}d|_|j|_
|j|�|j�|j!|j"d	�|j!|j$|g�|j!|j&d
�|j!|j|j�y)Nrr/r�r�r�r�r#raTr)r	r2r0r
rr;rr$r�rr$r�r&r'r�rr7r�r�stdin_bufferr1s	         r�&test_transition_event_proc_not_runningz=EventListenerPoolTests.test_transition_event_proc_not_running�s����.��3����Z��P����
�0F�0F�G��#�G�x�j�A���}�}�W�%��$�h�/������9����"5�";�";������%� ���������.�.��5�����*�*�U�G�4�����.�.��4�����0�0�2E�2K�2K�Lrc����t�}ddlm}t|ddd�}t	||j
��}t
||g���|j��}d|i|_t�}ddlm
}|j|_G�fd�d	�}||_
|j|�|j�|j!|j"d
�|j!|j$g�|j&j)dd�\}	}
|j!|
d
|
�|j!|j|j*�|j!|j,|�y)Nrr/r�r�r�r�r#c���eZdZW�Zy)�MEventListenerPoolTests.test_transition_event_proc_running.<locals>.DummyGroupN�r%r&r'rA�rfs�r�
DummyGroupr8������Frr;T�
ra�dummy event)r	r2r0r
rr�rr$r�rr$r&r'r-r�rr7r�rr4r�r0r��rrBr0r�r�r�r�r$r;rrrfs           @r�"test_transition_event_proc_runningz9EventListenerPoolTests.test_transition_event_proc_running�s#����.��3����Z��P����
�0E�0E�F��#�G�x�j�A���}�}�W�%��$�h�/������9�"5�";�";���	�	�#������%� ���������.�.��5�����*�*�B�/�"�/�/�5�5�e�Q�?��������.�'�:�����0�0�2E�2J�2J�K��������/rc��	�t�}ddlm}t|ddd�}t	||j
��}t
||g���	|j�	�}d|_tj�|_
d|i|_t�}ddlm
}|j|_G�	fd	�d
�}||_|j#|�|j%�|j'|j(d�|j'|j*|g�y)Nrr/r�r�r�r�r5r#c���eZdZW�Zy)�kEventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_notyet.<locals>.DummyGroupNr9r:s�rr;rC�r<rr;T)r	r2r0r
rr�rr$�dispatch_throttlerd�
last_dispatchr�rr$r&r'r-r�rr7r�r)
rrBr0r�r�r�r�r$r;rfs
         @r�@test_transition_event_proc_running_with_dispatch_throttle_notyetzWEventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_notyet�s�����.��3����Z��P����
�0E�0E�F��#�G�x�j�A���}�}�W�%��!"���!�Y�Y�[���$�h�/������9�"5�";�";���	�	�#������%� ���������.�.��5�����*�*�U�G�4rc���t�}ddlm}t|ddd�}t	||j
��}t
||g���|j��}d|_tj�dz
|_
d|i|_t�}dd	lm
}|j|_G�fd
�d�}||_|j#|�|j%�|j'|j(d�|j'|j*g�|j,j/d
d�\}	}
|j'|
d|
�|j'|j|j0�|j'|j2|�y)Nrr/r�r�r�r�r5r�r#c���eZdZW�Zy)�jEventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_ready.<locals>.DummyGroupNr9r:s�rr;rI�r<rr;Tr=rar>)r	r2r0r
rr�rr$rDrdrEr�rr$r&r'r-r�rr7r�rr4r�r0r�r?s           @r�?test_transition_event_proc_running_with_dispatch_throttle_readyzVEventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_ready�s>����.��3����Z��P����
�0E�0E�F��#�G�x�j�A���}�}�W�%��!"���!�Y�Y�[�4�/���$�h�/������9�"5�";�";���	�	�#������%� ���������.�.��5�����*�*�B�/�"�/�/�5�5�e�Q�?��������.�'�:�����0�0�2E�2J�2J�K��������/rc�b�
�tj�dz}t�}ddlm}t	|ddd�}t||j��}t||g���
|j�
�}d|_	||_
d|i|_t�}dd	lm
}|j|_G�
fd
�d�}	|	|_|j#|�|j%�|j'|j(d�|j'|j*|g�|j-|j|k�y)
Nr�rr/r�r�r�r�r5r#c���eZdZW�Zy)�|EventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_last_dispatch_in_future.<locals>.DummyGroupNr9r:s�rr;rM	r<rr;T)rdr	r2r0r
rr�rr$rDrEr�rr$r&r'r-r�rr7r�rrS)rr�rBr0r�r�r�r�r$r;rfs          @r�Qtest_transition_event_proc_running_with_dispatch_throttle_last_dispatch_in_futurezhEventListenerPoolTests.test_transition_event_proc_running_with_dispatch_throttle_last_dispatch_in_future�s�����i�i�k�D�(���.��3����Z��P����
�0E�0E�F��#�G�x�j�A���}�}�W�%��!"���(���$�h�/������9�"5�";�";���	�	�#������%� ���������.�.��5�����*�*�U�G�4�	
����*�*�[�8�9rc�6�t�}ddlm}t|ddd�}t	||j
��}t
||g��}|j|�}d|i|_t�}|j|�|j|j|�d�y)Nrr/r�r�r�r�F)
r	r2r0r
rr|rr$r�rr�r7�_dispatchEvent)rrBr0r�r�rfr�r�s        r�test__dispatchEvent_notreadyz3EventListenerPoolTests.test__dispatchEvent_notready	s����.��3����Z��P����
�0E�0E�F��#�G�x�j�A���}�}�W�%��$�h�/���������%� �����,�,�U�3�U�;rc��
�t�}ddlm}t|ddd�}t	||j
��}d�}||_t||g���
|j�
�}d|i|_	t�}ddlm}|j|_
G�
fd	�d
�}	|	|_|j|�|j!t"|j$|�y)Nrr/r�r�r�c�4�ttj��r)r�r�r�r�s r�raise_epipezcEventListenerPoolTests.test__dispatchEvent_proc_write_raises_non_EPIPE_OSError.<locals>.raise_epipe$	r�rr�r#c���eZdZW�Zy)�bEventListenerPoolTests.test__dispatchEvent_proc_write_raises_non_EPIPE_OSError.<locals>.DummyGroupNr9r:s�rr;rV-	r<rr;)r	r2r0r
rr�rCrr$r�rr$r&r'r-r�rrr�rP)rrBr0r�r�rTr�r�r$r;rfs          @r�7test__dispatchEvent_proc_write_raises_non_EPIPE_OSErrorzNEventListenerPoolTests.test__dispatchEvent_proc_write_raises_non_EPIPE_OSError	s�����.��3����Z��P����
�0E�0E�F��	(�$���#�G�x�j�A���}�}�W�%��$�h�/������9�"5�";�";���	�	�#������%� ����'�4�#6�#6��>rN)r%r&r'r�r,rrPr�rr
r!r)r-rWr2r5r@rFrJrNrQrWr�rrr�r��sf����!�
*�
3�/�(L�&I�8L�,
F�7�5�"M�&0�.5�*0�2:�4
<�?rr�c��eZdZd�Zd�Zd�Zy)�test_new_serialc��ddlm}||�S)Nr)�
new_serial)rr[)r�instr[s   r�_callFUTztest_new_serial._callFUT4	s��1��$��rc���ddlm�G�fd�dt�}|�}|j|�}|j	|j
d�|j	|d�y)Nrrc���eZdZ�fd�Zy)�8test_new_serial.test_inst_serial_is_maxint.<locals>.Instc����|_yrr)rrs �rr�zAtest_new_serial.test_inst_serial_is_maxint.<locals>.Inst.__init__;	s
���$��rNrrs�r�Instr`:	s���
%rrb)�supervisor.compatrr�r]r7r�)rrbr\r�rs    @r�test_inst_serial_is_maxintz*test_new_serial.test_inst_serial_is_maxint8	sM���,�	%�6�	%��v�����t�$��������a�(������#rc��Gd�dt�}|�}|j|�}|j|jd�|j|d�y)Nc��eZdZd�Zy)�<test_new_serial.test_inst_serial_is_not_maxint.<locals>.Instc��d|_y)Nrarr�s rr�zEtest_new_serial.test_inst_serial_is_not_maxint.<locals>.Inst.__init__D	s	����rNrr�rrrbrgC	s��
 rrbr�)r�r]r7r�)rrbr\r�s    r�test_inst_serial_is_not_maxintz.test_new_serial.test_inst_serial_is_not_maxintB	sI��	 �6�	 ��v�����t�$��������a�(������#rN)r%r&r'r]rdrir�rrrYrY3	s�� �$�$rrY)#r�r�r_r�rd�unittestrcrrr^rrrr	r
rrr
rrrrrrr�supervisor.optionsr�TestCaserrSr�r�r�r�rYr�rr�<module>rms����	�
����&�$�7�7�.�.�.�3�1�,�6�3�3�7�)�)�f,�h�'�'�f,�P5DN�X�.�.�DN�Lt)�H�-�-�t)�l6�-�6�0 �x�0�0� �Dy?�2�y?�v	$�h�'�'�$r

Youez - 2016 - github.com/yon3zu
LinuXploit