o
    r::j                     @  s~   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 G dd dejZedkr=e  dS dS )    )annotationsN)TensorProtohelperc                   @  s    e Zd ZdddZdddZdS )	TestUtilityFunctionsreturnNonec                 C  s,  dd }|d}|d}|d}|d}|d}|d}|d	}|d
}	t dddgdg}
t dddgdg}t dddgdg}t dddgdg}t dddgd	g}t ddd	gd
g}t |
|||||gd||g|	g}t j|dd}t }tj|d}t	
|| tj|d}g d}dd	g}t	j|||| t	|}| |jd | |j|j | |j|j | t|jjd | t|jjd | t|jjd | |jjd | | |jjd | | |jjd | | |jjd | | |jjd | tj|dd d S )Nc                 S  s   t | tjddgS )N      )r   make_tensor_value_infor   FLOAT)name r   [/home/nk/hobo-godmode/plappi-mvp/.venv/lib/python3.10/site-packages/onnx/test/utils_test.pycreate_tensor   s   z>TestUtilityFunctions.test_extract_model.<locals>.create_tensorA0A1B0B1B2C0C1D0AddSubMultest)producer_namezoriginal.onnxzextracted.onnx)r   r   r   zonnx.utils.extract_modelr	      r   r   T)ignore_errors)r   	make_node
make_graph
make_modeltempfilemkdtempospathjoinonnxsaveutilsextract_modelloadassertEqualr   
ir_versionopset_importlengraphnodeinputoutputshutilrmtree)selfr   r   r   r   r   r   r   r   r   L0_0L0_1L0_2L1_0L1_1L2_0g0m0tdirp0p1input_namesoutput_namesm1r   r   r   test_extract_model   sN   
z'TestUtilityFunctions.test_extract_modelc              
   C  s  t  }tj|d}t| tj|d}t|d}d}td}t	||_
||t| W d    n1 s>w   Y  t|%}| td tj|| W d    n1 saw   Y  W d    n1 spw   Y  W d    d S W d    d S 1 sw   Y  d S )Nmodelzpayload.tarws   outside extraction rootz../model_evil/pwned.txtzdirectory traversal)r"   TemporaryDirectoryr$   r%   r&   mkdirtarfileopenTarInfor/   sizeaddfileioBytesIOassertRaisesRegexRuntimeErrorr'   r)   _tar_members_filter)r6   r?   basetar_pathtarpayloadinfor   r   r   5test_tar_members_filter_rejects_sibling_prefix_escape@   s,   




 "zJTestUtilityFunctions.test_tar_members_filter_rejects_sibling_prefix_escapeN)r   r   )__name__
__module____qualname__rE   rY   r   r   r   r   r      s    
.r   __main__)
__future__r   rO   r$   r4   rJ   r"   unittestr'   r   r   TestCaser   rZ   mainr   r   r   r   <module>   s   B