a
    "RhH                     @   s4   d dl Z d dlZd dlZe ZG dd de jZdS )    Nc                   @   s,   e Zd Zdd ZefddZefddZdS )BytecodeTestCasec                 C   s   t  }tj||d | S )N)file)ioStringIOdisgetvalue)selfcos r   D/opt/python-3.9.24/usr/lib/python3.9/test/support/bytecode_helper.pyget_disassembly_as_string   s    z*BytecodeTestCase.get_disassembly_as_stringc                 C   st   t |D ](}|j|kr
|tu s*|j|kr
|  S q
| |}|tu rTd||f }nd}||||f }| | d S )Nz%s not found in bytecode:
%sz!(%s,%r) not found in bytecode:
%s)r   get_instructionsopname_UNSPECIFIEDargvalr   failr   xr   r   ZinstrZdisassemblymsgr   r   r   assertInBytecode   s    


z!BytecodeTestCase.assertInBytecodec                 C   sd   t |D ]T}|j|kr
| |}|tu r8d||f }n|j|krTd}||||f }| | q
d S )Nz%s occurs in bytecode:
%sz(%s,%r) occurs in bytecode:
%s)r   r   r   r   r   r   r   r   r   r   r   assertNotInBytecode   s    


z$BytecodeTestCase.assertNotInBytecodeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   	   s   r   )Zunittestr   r   objectr   ZTestCaser   r   r   r   r   <module>   s   