
    8bh                     h    d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlm	Z	 erddl
mZ  G d d	      Zy)
    N)
MS_WINDOWS   )TestResults)RunTests)print_warning)WindowsLoadTrackerc                   x    e Zd ZdededefdZddeddfdZdedz  fd	Z	d
e
deddfdZdeddfdZddZddZy)Loggerresultsquietpgoc                     t        j                         | _        d| _        d| _        d | _        || _        || _        || _        y )N    )	timeperf_counter
start_timetest_count_texttest_count_widthwin_load_tracker_results_quiet_pgo)selfr   r   r   s       A/opt/python-3.12.12/usr/lib/python3.12/test/libregrtest/logger.py__init__zLogger.__init__   s?    ++-! !;?%,!	    linereturnNc                    | }| j                         }|	d|dd| }t        j                         | j                  z
  }t	        t        |      d      \  }}t	        |d      \  }}d|||fz  }| d| }|r|d d }t        |d       y )	Nz
load avg: z.2f <   z%d:%02d:%02dT)flush)get_load_avgr   r   r   divmodintprint)	r   r   emptyload_avglog_timeminssecshoursformatted_log_times	            r   logz
Logger.log   s     $$&~Qtf5D $$&8CM2.
dT2&t+udD.AA$%Qtf-9Dd$r   c                     t        t        d      r	 t        j                         d   S | j                  | j                  j                         S y # t        $ r Y 2w xY w)N
getloadavgr   )hasattrosr2   OSErrorr   r   s    r   r%   zLogger.get_load_avg,   s\    2|$}}q))   ,((3355	  s   A 	AA
test_indextextc                    | j                   ry | j                  }|| j                   | j                   }t	        |j
                        t	        |j                        z   }|r| j                  s| d| }| j                  d| d|        y )N/[z] )	r   r   r   r   lenbadenv_changedr   r0   )r   r7   r8   r   r   failss         r   display_progresszLogger.display_progress6   s    ;;-- d3345d6J6J5KLGKK 3w':':#;;V1UG$D1TF"TF#$r   runtestsc                     |j                   rd| _        d| _        y dj                  t	        |j
                              | _        t	        | j                        dz
  | _        y )Nr   r   z/{}r   )foreverr   r   formatr<   tests)r   rA   s     r   	set_testszLogger.set_testsB   sM    #%D $%D!#(<<HNN0C#DD $'(<(<$=$AD!r   c                 z    t         sy 	 t               | _        y # t        $ r}t	        d|        Y d }~y d }~ww xY w)Nz%Failed to create WindowsLoadTracker: )r   r   r   PermissionErrorr   )r   errors     r   start_load_trackerzLogger.start_load_trackerJ   s@    	K$6$8D! 	K A%IJJ	Ks    	:5:c                 `    | j                   y | j                   j                          d | _         y )N)r   closer6   s    r   stop_load_trackerzLogger.stop_load_trackerU   s+      (##% $r   )r   )r   N)__name__
__module____qualname__r   boolr   strr0   floatr%   r'   r@   r   rF   rJ   rM    r   r   r
   r
      sz     D t    T  *edl 
%3 
%c 
%d 
%B( Bt B	K%r   r
   )r4   r   test.supportr   r   r   rA   r   utilsr   	win_utilsr   r
   rT   r   r   <module>rX      s)    	  #     -L% L%r   