
    %h                         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Zd dlZd dl	Z	d dl
Z	d dlZ	d dlZi adad Zd Zd Zd Zd Zd Zd Zd	 Zd
 ZddZd Zd Zd Zd ZdS )    Nc                      t          j        d           t          j                            ddgt          j                   d S )NzUpdating osmo-ttcn3-hacks/depsmakedeps)cwd)logginginfotestenvcmdrunttcn3_hacks_dir     V/home/osmocom-build/jenkins/workspace/ttcn3-ns-test-asan/_testenv/testenv/testsuite.pyupdate_depsr      s9    L1222KOOVV$'*AOBBBBBr   c                  0   t           j         dt           j        j         } t	          j        dt           j        j                    t           j                            dg| t                     t           j                            d| t                     d S )N/z"Generating links and Makefile for z./gen_links.shr   envz USE_CCACHE=1 ./regen_makefile.sh)	r	   r   args	testsuiter   r   r
   r   builddir_env)testsuite_dirs    r   prepare_testsuite_dirr      sz    .II1GIIMLNgl6LNNOOOKOO%&M|OLLLKOO6M|O\\\\\r   c                  l   t          j        t                     t                       t          j                                        \  } }d|  }t          j        j        st          j
                            |          rt          j        j        rdnd}t          j                                        }t          j
                            t          j        j        |d|  |           }t          j                            t          j        j                  d         }||| d| dat%                       d S )	Nz/opt/eclipse-titan-podmanhostztitan-)r   PATHz/bin:)BUILDDIR	TTCN3_DIRr   )atexitregisterstopr   r	   testenv_cfgget_titan_version_first_cfgr   r   ospathexistsr
   distro_cache_suffixjoincachegenerate_envr   r   )titan_version_	ttcn3_dir	cache_dirsuffixbuilddirpath_olds          r   initr3   !   s    ODMMM*FFHHM15m55I| 	
bgnnY77 	
 ' 3?HH	00227<< 2I?_?_W]?_?_``;++7<3F+GGO " 11x11
 
 r   c                  r   t           j                                        \  } }t          j        d|  d| d           t          j        t                    }dt           j                                         |d<   t           j        	                    dt           j
        j        gt           j        |           d S )Nz"Building testsuite (eclipse-titan , )z-jPARALLEL_MAKEr   r   )r	   r#   r$   r   r   copyr   get_titan_make_job_countr
   r   r   r   r   )r,   titan_reasonr   s      r   buildr;   8   s    ")"5"Q"Q"S"SM<LVmVV|VVVWWW
)L
!
!CP 3 L L N NPPCKOOVW\34':QWZO[[[[[r   c                     d|  d}t           j                            |          sdS t          |          5 }|                                dk    cd d d            S # 1 swxY w Y   d S )Nz/proc/z/cmdlineF )r%   r&   r'   openread)pidcmdlinefs      r   
is_runningrC   B   s     %s$$$G7>>'"" u 
g !vvxx2~                 s   AA #A c                    | d         }t           j                            t          j        j        d          }t          j        d           t           j                            t          j        d          }t          j	        |           dt          j	        |d                    d}t          j
                            ||t                     d S )Nr   zMerging log fileszlog_merge.sh programz --rm >/dev/nullr   )r%   r&   r)   r	   testdirr   r   r   shlexquoter
   r   r   )cfgsection_datar   	log_merger
   s        r   merge_log_filesrM   N   s    {#L
',,w.
<
<CL$%%%W4nEEI [##
\
\ek,y2I&J&J
\
\
\CKOOCSlO33333r   c                 .   t           j                            t          j        j        d          }t          j        d           t           j                            t          j        d          }t          j        	                    ||t                     d S )Nr   zFormatting log fileszscripts/log_format.shr   )r%   r&   r)   r	   rG   r   r   data_dirr
   r   r   )rJ   r   r
   s      r   format_log_filesrP   Z   sf    
',,w.
<
<CL'(((
',,w')@
A
ACKOOCSlO33333r   c                 p    t           j                            | dd          }t          j        |d          S )Nz**zjunit-*.logT)	recursive)r%   r&   r)   glob)topdirpatterns     r   get_junit_logsrV   b   s.    gll6477G9W----r   c                     d} t           j        j        st          j        d          r8t
          j                            dd          }dt          j	        |           d} t          t           j        j                  D ]}d|  dt          j	        |           d	}t          j        d
t
          j                            |t           j        j                              t           j                            |           d S )Ncatzsource-highlightTESTENV_SOURCE_HIGHLIGHT_COLORSesc256zsource-highlight -f z
 -s xml -izecho && rE   z && echozShowing )r	   r   r   shutilwhichr%   environgetrH   rI   rV   rG   testdir_topdirr   r   r&   relpathr
   r   )toolcolorsr&   r
   s       r   cat_junit_logsrc   g   s    D| Ffl+=>> F A8LLEek&&9&9EEEw=>>  ;;;D 1 1;;;Wgo6T U UWWXXX r   c                    t           j        j        }| #t          j                            |d|            }d}t          |          D ];}dD ]2}dd||g}t           j                            |d          j	        rd} n3|s n<|S )Nzloop-T)zfailures='0'z
errors='0'grepz-qF)check)
r	   rG   r_   r%   r&   r)   rV   r
   r   
returncode)
loop_countrT   retr&   	match_strr
   s         r   check_testsuite_successfulrk   t   s    _+Ff&:j&:&:;;
Cv&&  7 	 	I4D1C{s%00;   	E	 Jr   c                    | d         }t           j                            t          j        j        d          }t           j                            t          j        d          }t           j                            t          j        t          j        j        |d                   }t           j                            |t          j                  }t          j	        t                    }t           j                            t          j        j        d          |d<   t          j                            |           \  }}|r
||d<   ||d<   t          j                            |t          j        j                  }|||d         g}t          j        j        }	|	rd|	v r||	gz  }n||d          d|	 gz  }t          j                                        \  }
}t%          j        d	|
 d
| d           t          j                                        r#t          j                            |||          an.t%          j        d|            t1          j        |||          a	 t5          j        d           t)          t,          j                  sft          j        j        r2t          j                                        st          j        d          t%          j        d           t=                       nt          j                                          tC          |            tE          |            t          j        j#        r"tI                      st          j        d          d S d S )Nr   zstart-testsuite.shrF   TTCN3_PCAP_PATHOSMO_SUT_HOSTOSMO_SUT_PORTconfig.z!Running testsuite (eclipse-titan r5   r6   r   z+ T   zpodman container crashed!zTestsuite is donezTestsuite failed!)%r%   r&   r)   r	   rG   r   r   r   r`   r8   r   r#   get_vty_host_portr
   r+   r   testr$   r   r   rC   exec_cmd_backgroundtestsuite_procdebug
subprocessPopentimesleepr@   NoTraceExceptionr"   daemonscheck_if_crashedrM   rP   bisectrk   )rJ   rK   r   start_testsuitesuiter   r   portr
   test_argr,   r:   s               r   r   r      s    {#L
',,w.
<
<Cgll7#:<PQQOGLL0',2H,W`JabbEGOOE7#:;;E
)L
!
!CW\\'/*A;OOC $66s;;JD$ $#O#O
+
"
"3(;
<
<CE<#9
:C| H =(??H:CC|I.;;;;<<C")"5"Q"Q"S"SM<LU]UUlUUUVVV~  "" A ;;CSc;RRj3jj!!!#)#3C@@@
+
1.,-- 	|" L7>+D+D+F+F L./JKKKM-...FFF((***
+ CS| <#=#?#? <&':;;;< < < <r   c                     t           j                            t          j        j        d          } 	 t          | d          5 }|                                                                cd d d            S # 1 swxY w Y   d S #  Y d S xY w)Ntestsuite/.current_testr)r%   r&   r)   r	   rG   r>   readlinerstrip)r&   hs     r   get_current_testr      s    7<</1JKKD$__ 	)::<<&&((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)tts/   B &A4'B 4A88B ;A8<B Bc                  B   t           j                            t          j        j        d          } t          j        d           t          dd          D ]8}t          j	        d           t           j        
                    |           s d S 9t          j        d          )Nr   z!Waiting until test has stopped...r   i  g?z$Timeout in wait_until_test_stopped())r%   r&   r)   r	   rG   r   rw   rangerz   r{   r'   NoTraceError)r&   is     r   wait_until_test_stoppedr      s    7<</1JKKDM56661d^^  
3w~~d## 	FF	 
E
F
FFr   c                      t           rOt          j        dt           j         d           t          j                            t           j                   d a d S d S )NzStopping testsuite (r6   )rv   r   r   r@   r	   r}   killr   r   r   r"   r"      sW      AN,>AAABBB^/000 r   )N)r    r8   rS   r   r%   os.pathrH   r[   rx   r	   testenv.cmdtestenv.testenv_cfgrz   r   rv   r   r   r3   r;   rC   rM   rP   rV   rc   rk   r   r   r   r"   r   r   r   <module>r      s}       				                 C C C
] ] ]  .\ \ \	 	 		4 	4 	44 4 4. . .

 
 
   &8< 8< 8<v  
G 
G 
G    r   