
    be                     n    d Z ddlmZ ddlZddlmZmZ ddlZddl	Z	 G d dej
        j                  ZdS )zBTests for array handling in PIDL generated bindings samba.dcerpc.*    )drsblobsN)
ndr_unpackndr_packc                   F     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	 xZ
S )
ArrayTestsc                     t          t          |                                            t          j                     t          j                    | _        d S )N)superr   setUptallocenable_null_trackingtotal_blocksstartup_blocksself	__class__s    :/usr/lib/python3/dist-packages/samba/tests/dcerpc/array.pyr
   zArrayTests.setUp   sE    j$%%'''#%%%$133    c                    t          t          |                                            t          j                     t          j                    | j        k    r*t          j                     | 	                    d           d S d S )Nz it appears we are leaking memory)
r	   r   tearDowngccollectr   r   r   report_fullfailr   s    r   r   zArrayTests.tearDown"   sq    j$((***

  D$777   II899999 87r   c                 n   t          j                    }d|_        t          j                    |_        d|j        _        t          j                    }d|_        d|_        t          j                    }d|_        d|_        t          j                    }d|_        d|_        |||g|j        _        t          j
                     |                     |           |                     |j        d           |                     |j                   |                     |j        j        d           |                     t          |j        j                  |j        j                   |                     |j        j        d                    |                     |j        j        d         j        d           d S N         r   )r   replPropertyMetaDataBlobversionreplPropertyMetaDataCtr1ctrcountreplPropertyMetaData1attidarrayr   r   assertIsNotNoneassertEquallenr   rmdrmd1rmd2rmd3s        r   test_array_from_pythonz!ArrayTests.test_array_from_python)   sf   /11355-//
-//
-//
tT*

S!!!a(((SW%%%***SW]++SW];;;SW]1-...q)/33333r   c                    	 t          j                    }d|_        t          j                    |_        d|j        _        t          j                    }d|_        d|_        t          j                    }d|_        d|_        t          j                    }d|_        d|_        |||g|j        _        t          j
                     |                     |           |                     |j        d           |                     |j                   |                     |j        j        d           |                     t          |j        j                  |j        j                   |                     |j        j        d                    |                     |j        j        d         j        d           t                      #  Y d S xY wr   )r   r   r    r!   r"   r#   r$   r%   r&   r   r   r'   r(   r)   	Exceptionr*   s        r   test_array_with_exceptionz$ArrayTests.test_array_with_exceptionG   s   !	355CCK799CGCGM133DDJDL133DDJDL133DDJDL!4.CGMJLLL  %%%S[!,,,  )))SW]A...S//???  q!1222SW]1-3Q777++	DDs   GG G	c                 (   d } |            }t          j                     |                     |           |                     |j        d           |                     |j                   |                     |j        j        d           |                     t          |j        j                  |j        j                   |                     |j        j        d                    |                     |j        j        d         j	        d           d S )Nc                  f   t          j                    } d| _        t          j                    | _        d| j        _        t          j                    }d|_        d|_        t          j                    }d|_        d|_        t          j                    }d|_        d|_        |||g| j        _        | S )Nr   r   r   )	r   r   r    r!   r"   r#   r$   r%   r&   )r+   r,   r-   r.   s       r   get_rmdz;ArrayTests.test_array_from_python_function.<locals>.get_rmdl   s    355CCK799CGCGM133DDJDL133DDJDL133DDJDL!4.CGMJr   r   r   r   )
r   r   r'   r(   r    r"   r#   r)   r&   r%   )r   r5   r+   s      r   test_array_from_python_functionz*ArrayTests.test_array_from_python_functionk   s    	 	 	, gii

S!!!a(((SW%%%***SW]++SW];;;SW]1-...q)/33333r   c                 @   t          j                    }d|_        t          j                    |_        d|j        _        t          j                    }d|_        d|_        t          j                    }d|_        d|_        t          j                    }d|_        d|_        |||g|j        _        t          |          }t          j                     t          t           j        |          }|                     |           |                     |j        d           |                     |j                   |                     |j        j        d           |                     t          |j        j                  |j        j                   |                     |j        j        d                    |                     |j        j        d         j        d           |                     |j        j        d         j        |j        j        d         j                   d S r   )r   r   r    r!   r"   r#   r$   r%   r&   r   r   r   r   r'   r(   r)   )r   r+   r,   r-   r.   packedrmd_unpackeds          r   test_array_from_ndrzArrayTests.test_array_from_ndr   s   /11355-//
-//
-//
tT*#

!("CVLL\***-q111\-...)/333\-344l6F6LMMM\-3A6777)/28!<<<q)/%)/28	: 	: 	: 	: 	:r   c                 0   t          j                    }d|_        t          j                    |_        d|j        _        t          j                    }d|_        d|_        t          j                    }d|_        d|_        t          j                    }d|_        d|_        |||g|j        _        	 |`| 	                    d           n# t          $ r
}Y d }~nd }~ww xY w	 |j        `| 	                    d           d S # t          $ r}Y d }~d S d }~ww xY w)Nr   r   r   z"succeeded in deleting rmd1.versionz#succeeded in deleting rmd.ctr.array)r   r   r    r!   r"   r#   r$   r%   r&   r   AttributeError)r   r+   r,   r-   r.   es         r   test_array_deletezArrayTests.test_array_delete   s/   /11355-//
-//
-//
tT*	II:;;;; 	 	 	DDDD		II;<<<<< 	 	 	DDDDD	s$   2C
 

CC"D   
DD)__name__
__module____qualname__r
   r   r/   r2   r6   r:   r>   __classcell__)r   s   @r   r   r      s        4 4 4 4 4
: : : : :4 4 4<" " "H4 4 4B": ": ":H      r   r   )__doc__samba.dcerpcr   samba.testssamba	samba.ndrr   r   r   r   testsTestCaser    r   r   <module>rK      s   $ I H ! ! ! ! ! !     * * * * * * * *  				s s s s s% s s s s sr   