|
Server : LiteSpeed System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64 User : nandedex ( 1060) PHP Version : 8.1.33 Disable Function : NONE Directory : /opt/cppython/lib/python3.8/test/__pycache__/ |
U
>��g�M � @ sZ d dl Z d dlZd dlmZ dd� ZG dd� de�ZG dd� dej�Zed krVe� � dS )
� N)�BytecodeTestCasec C s^ d}t �| �D ]}|j|kr|d7 }qt| d�r6| j} | jD ]}t|d�r<|t||�7 }q<|S )Nr � �__code__�co_code)�dis�get_instructions�opname�hasattrr � co_consts�count_instr_recursively)�fr �count�instr�c� r �2/opt/cppython/lib/python3.8/test/test_peepholer.pyr s
r c @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7S )8�
TestTranformsc
C s� t t�|��}dd� |D �}|D ]�}d|jkr0q ||j }|jdkrl| �|j� d|j� d|j� d|j� �� |jdkr�|jdkr�| �|j� d|j� d|j� d|j� �� d|jkr d |jkr | �|j� d|j� d|j� d|j� �� q d S )
Nc S s i | ]}|j |�qS r )�offset��.0r r r r �
<dictcomp> s z4TestTranforms.check_jump_targets.<locals>.<dictcomp>ZJUMP_)�
JUMP_ABSOLUTE�JUMP_FORWARDz at z
jumps to �RETURN_VALUEZ_OR_POPZJUMP_IF_)�listr r r ZargvalZfailr )�self�codeZinstructionsZtargetsr Ztgtr r r �check_jump_targets s
(
�(z TestTranforms.check_jump_targetsc C s^ t �|�}tt �|��}tdd� |D ��}tdd� |D ��}| �|d� | �|t|j �� d S )Nc s s | ]}|d V qdS �r Nr �r �tr r r � <genexpr>1 s z-TestTranforms.check_lnotab.<locals>.<genexpr>c s s | ]}|d V qdS r r r r r r r! 2 s r )
r Z_get_code_objectr Zfindlinestarts�min�maxZassertGreaterEqualZ
assertLess�lenr )r r ZlnotabZmin_bytecodeZmax_bytecoder r r �check_lnotab+ s
zTestTranforms.check_lnotabc C s: dd� }| � |d� | � |d� | �|d� | �|� d S )Nc S s | dks
~ d S )N� r ��xr r r �unot; s z%TestTranforms.test_unot.<locals>.unotZ UNARY_NOT�POP_JUMP_IF_FALSE�POP_JUMP_IF_TRUE��assertNotInBytecode�assertInBytecoder% )r r) r r r � test_unot9 s
zTestTranforms.test_unotc C s6 dD ],\}}t |dd�}| �|d|� | �|� qd S )N))z
not a is bzis not)z
not a in bznot in)znot a is not b�is)znot a not in b�in� �singleZ
COMPARE_OP)�compiler. r% )r �lineZcmp_opr r r r �test_elim_inversion_of_is_or_inC s z-TestTranforms.test_elim_inversion_of_is_or_inc C s� dd� }dd� }dd� }|d f|df|dffD ],\}}| � |d � | �|d
|� | �|� q.dd� }| � |d � | �|d
d � | �|� d S )Nc S s d } d } | S �Nr r'