Sindbad~EG File Manager
a
��gj � @ s� d Z ddlZddlmZ ddlZddlZddlZddlmZ dZ dZ
e�� ZG dd� dej
�ZG d d
� d
ej�Zedkr�e�� dS )an
Create and delete FILES_PER_THREAD temp files (via tempfile.TemporaryFile)
in each of NUM_THREADS threads, recording the number of successes and
failures. A failure is a bug in tempfile, and may be due to:
+ Trying to create more than one tempfile with the same name.
+ Trying to delete a tempfile that doesn't still exist.
+ Something we've never seen before.
By default, NUM_THREADS == 20 and FILES_PER_THREAD == 50. This is enough to
create about 150 failures per run under Win98SE in 2.0, and runs pretty
quickly. Guido reports needing to boost FILES_PER_THREAD to 500 before
provoking a 2.0 failure under Linux.
� N)�
start_threads)� print_exc� �2 c @ s e Zd ZdZdZdd� ZdS )�TempFileGreedyr c C sp t �� | _t�� tt�D ]P}zt�d�}|� � W n& | j
d7 _
t| jd� Y q0 | jd7 _qd S )Nzw+b� )�file)
�io�StringIO�errors�
startEvent�wait�range�FILES_PER_THREAD�tempfile�
TemporaryFile�close�error_countr �ok_count)�self�i�f� r �6/usr/local/lib/python3.9/test/test_threadedtempfile.py�run$ s
zTempFileGreedy.runN)�__name__�
__module__�__qualname__r r r r r r r r s r c @ s e Zd Zdd� ZdS )�ThreadedTempFileTestc C s� dd� t t�D �}t|tj�� W d � n1 s40 Y tdd� |D ��}dd� |D �}dt|�|d�|�f }| �|g |� | �|tt � d S )Nc S s g | ]
}t � �qS r )r )�.0r r r r �
<listcomp>4 � z2ThreadedTempFileTest.test_main.<locals>.<listcomp>c s s | ]}|j V qd S )N)r �r �tr r r � <genexpr>7 r! z1ThreadedTempFileTest.test_main.<locals>.<genexpr>c S s* g | ]"}|j rt|j�t|j�� � �qS r )r �str�namer �getvaluer"