File: //lib/python3.10/test/support/__pycache__/bytecode_helper.cpython-310.pyc
o
�*�go � @ s8 d Z ddlZddlZddlZe� ZG dd� dej�ZdS )zGbytecode_helper - support tools for testing correct bytecode generation� Nc @ s0 e Zd ZdZdd� Zefdd�Zefdd�ZdS ) �BytecodeTestCasez1Custom assertion methods for inspecting bytecode.c C s t �� }tj||d� |�� S )N)�file)�io�StringIO�dis�getvalue)�self�co�s� r �3/usr/lib/python3.10/test/support/bytecode_helper.py�get_disassembly_as_string s z*BytecodeTestCase.get_disassembly_as_stringc C st t �|�D ]}|j|kr|tu s|j|kr| S q| �|�}|tu r*d||f }n d}||||f }| �|� dS )zAReturns instr if opname is found, otherwise throws AssertionErrorz%s not found in bytecode:
%sz!(%s,%r) not found in bytecode:
%sN)r �get_instructions�opname�_UNSPECIFIED�argvalr
�fail�r �xr r �instr�disassembly�msgr r r �assertInBytecode s
�
z!BytecodeTestCase.assertInBytecodec C sn t �|�D ]/}|j|kr4| �|�}|tu r!d||f }| �|� q|j|kr4d}||||f }| �|� qdS )z(Throws AssertionError if opname is foundz%s occurs in bytecode:
%sz(%s,%r) occurs in bytecode:
%sN)r r r r
r r r r r r r �assertNotInBytecode s
��z$BytecodeTestCase.assertNotInBytecodeN)�__name__�
__module__�__qualname__�__doc__r
r r r r r r r r s
r )r �unittestr r �objectr �TestCaser r r r r �<module> s