
    z
@h
                     p    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dS )
    N)
MS_WINDOWS   )TestResults)RunTests)print_warning)WindowsLoadTrackerc                   z    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dS )Loggerresultsquietpgoc                     t          j                    | _        d| _        d| _        d | _        || _        || _        || _        d S )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.11/test/libregrtest/logger.py__init__zLogger.__init__   sC    +--! !;?%,!			    r   linereturnNc                 >   | }|                                  }|	d|dd| }t          j                    | j        z
  }t	          t          |          d          \  }}t	          |d          \  }}d|||fz  }| d| }|r
|d d         }t          |d           d S )	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     $$&&5555t55D $&&8CMM2..
dT2&&t+udD.AA$--t-- 	9Dd$r   c                     t          t          d          rt          j                    d         S | j        | j                                        S d S )N
getloadavgr   )hasattrosr2   r   r   s    r   r%   zLogger.get_load_avg,   sH    2|$$ 	&=??1%% ,(33555tr   
test_indextextc                     | j         rd S | j        }|| j         | j         }t	          |j                  t	          |j                  z   }|r| j        s| d| }|                     d| d|            d S )N/[z] )	r   r   r   r   lenbadenv_changedr   r0   )r   r6   r7   r   r   failss         r   display_progresszLogger.display_progress3   s    ; 	F- d3LLd6JLLGK  3w':#;#;; 	% 	%$$U$$D#T##T##$$$$$r   runtestsc                     |j         rd| _        d| _        d S d                    t	          |j                            | _        t	          | j                  dz
  | _        d S )Nr   r   z/{}r   )foreverr   r   formatr;   tests)r   r@   s     r   	set_testszLogger.set_tests?   s`     	B#%D $%D!!!#(<<HN0C0C#D#DD $'(<$=$=$AD!!!r   c                     t           sd S 	 t                      | _        d S # t          $ r}t	          d|            Y d }~d S 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   sw     	F	K$6$8$8D!!! 	K 	K 	K I%IIJJJJJJJJJ	Ks     
AAAc                 X    | j         d S | j                                          d | _         d S )N)r   closer5   s    r   stop_load_trackerzLogger.stop_load_trackerR   s3     (F##%%% $r   )r   )r   N)__name__
__module____qualname__r   boolr   strr0   floatr%   r'   r?   r   rE   rI   rL    r   r   r
   r
      s         D t         T        *edl    
%3 
%c 
%d 
% 
% 
% 
%B( Bt B B B B	K 	K 	K 	K% % % % % %r   r
   )r4   r   test.supportr   r   r   r@   r   utilsr   	win_utilsr   r
   rS   r   r   <module>rW      s    				  # # # # # #                               .------I% I% I% I% I% I% I% I% I% I%r   