File: //usr/local/lib/python3.7/test/__pycache__/bytecode_helper.cpython-37.pyc
B
��g@ � @ 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 �0/usr/local/lib/python3.7/test/bytecode_helper.py�get_disassembly_as_string s z*BytecodeTestCase.get_disassembly_as_stringc C st x2t �|�D ]$}|j|kr|tks,|j|kr|S qW | �|�}|tkrTd||f }nd}||||f }| �|� dS )z=Returns instr if op 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 sh xbt �|�D ]T}|j|kr| �|�}|tkr:d||f }n|j|krVd}||||f }| �|� qW dS )z$Throws AssertionError if op is foundz%s occurs in bytecode:
%sz(%s,%r) occurs in bytecode:
%sN)r r r r
r r 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 Zunittestr r �objectr ZTestCaser r r r r �<module> s