
    Rh
                     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       ./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 )N
getloadavgr   )hasattrosr2   r   r   s    r   r%   zLogger.get_load_avg,   sA    2|$==?1%%  ,((3355r   
test_indextextc                     | j                   ry | j                  }|| j                   d| j                   }t	        |j
                        t	        |j                        z   }|r| j                  s| d| }| j                  d| d|        y )Nr   /[z] )	r   r   r   r   lenbadenv_changedr   r0   )r   r6   r7   r   r   failss         r   display_progresszLogger.display_progress3   s    ;;-- d334@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   r@   s     r   	set_testszLogger.set_tests?   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_trackerG   s@    	K$6$8D! 	K A%IJJ	Ks    	:5:c                 `    | j                   y | j                   j                          d | _         y )N)r   closer5   s    r   stop_load_trackerzLogger.stop_load_trackerR   s+      (##% $r   )r   )r   N)__name__
__module____qualname__r   boolr   strr0   floatr%   r'   r?   r   rE   rI   rL    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   r@   r   utilsr   	win_utilsr   r
   rS   r   r   <module>rW      s)    	  #     -I% I%r   