<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
X]'                 @   s  d dl m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mZmZ d dlmZ d dlZejdZejdZG dd dZejd	d
 Zejdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd  Z!d!d" Z"d#d$ Z#d%d& Z$d'd( Z%d)d* Z&d+d, Z'd-d. Z(d/d0 Z)d1d2 Z*d3d4 Z+d5d6 Z,d7d8 Z-d9d: Z.d;d< Z/d=d> Z0d?d@ Z1dAdB Z2dS )C    )print_functionN)journalid128)
_make_lineZ 8441372f8dca4ca98694a6091fd8519fZ 8441370000000000000000001fd85000c               @   s   e Zd Zdd ZdddZdS )
MockSenderc             C   s
   g | _ d S )N)buf)self r	   $/usr/lib64/python3.6/test_journal.py__init__   s    zMockSender.__init__Nc       	      K   s   d| g}|d k	r,t |d|}|jd|  ||  koH|  koHd kn  rltjddd d d \}}}|d k	r|jd|  |d k	r|jd	j| |d k	r|jd
|  |jdd |j D  | jj| d S )NzMESSAGE=hexzMESSAGE_ID=   )limitr      z
CODE_FILE=zCODE_LINE={:d}z
CODE_FUNC=c             s   s   | ]\}}t ||V  qd S )N)r   ).0keyvalr	   r	   r
   	<genexpr>)   s    z"MockSender.send.<locals>.<genexpr>)getattrappend
_tracebackextract_stackformatextenditemsr   )	r   ZMESSAGE
MESSAGE_IDZ	CODE_FILEZ	CODE_LINEZ	CODE_FUNCkwargsargsidr	   r	   r
   send   s    
"zMockSender.send)NNNN)__name__
__module____qualname__r   r   r	   r	   r	   r
   r      s    r   c             c   sJ   y
d V  W n: t tfk
rD } z|j| kr2tj   W Y d d }~X nX d S )N)OSErrorIOErrorerrnopytestskip)codeer	   r	   r
   skip_oserror,   s    

r*   c               c   s,   y
d V  W n t k
r&   tj  Y nX d S )N)
ValueErrorr&   r'   r	   r	   r	   r
   skip_valueerror5   s    
r,   c              C   s|  t jj} | tjt jkst| tjt jks0t| tjd t jksHt| tjd t jks`t| tj	d t jksxt| tj	t jkst| tj	d t j
kst| tjd t j
kst| tjt j
kst| tjd t jkst| tjd t jkst| tjt jkst| tjd t jks2t| tjt jksHt| tjt jks^t| tjd t jksxtd S )N   )r   JournalHandlerZmap_priorityloggingZNOTSETZ	LOG_DEBUGAssertionErrorDEBUGZLOG_INFOINFOZLOG_WARNINGZWARNZLOG_ERRZERRORZLOG_CRITZFATALZCRITICALZ	LOG_ALERT)pr	   r	   r
   test_priorities<   s"    r4   c           
   C   s.   ddi} t jt tjf |  W d Q R X d S )Nz X  r   )r&   raisesr+   r   r.   )kwr	   r	   r
   "test_journalhandler_init_exceptionQ   s    r7   c              C   s   ddd} t jtjf|  d S )Nr      )XX3)r   r.   r/   r2   )r6   r	   r	   r
   test_journalhandler_initV   s    
r;   c              C   s   t jdt jdddd d } t }dd|jd}tjt jf|}|j|  t|j	dksXt
d|j	d	 ksjt
d
|j	d	 ks|t
d S )Nztest-loggertestpathr-   testr   r8   )r9   r:   sender_functionzX=3r   zX3=4)r/   	LogRecordr2   r   r   r   r.   emitlenr   r0   )recordsenderr6   handlerr	   r	   r
   test_journalhandler_infoZ   s    
rE   c              C   sl   t jdt jdddd d } t }tjt j|jd}|j|  t|j	dksLt
tdd |j	d D sht
d S )	Nztest-loggerr<   r-   r=   )r>   c             s   s   | ]}|j d  V  qdS )zMESSAGE_ID=N)
startswith)r   mr	   r	   r
   r   k   s    z4test_journalhandler_no_message_id.<locals>.<genexpr>r   )r/   r?   r2   r   r   r.   r   r@   rA   r   r0   all)rB   rC   rD   r	   r	   r
   !test_journalhandler_no_message_ide   s    
rI   c              C   sj   t jdt jdddd d } t }tjt j|jtd}|j|  t	|j
dksNtdtj |j
d ksftd S )Nztest-loggerr<   r-   r=   )r>   r   zMESSAGE_ID=r   )r/   r?   r2   r   r   r.   r   TEST_MIDr@   rA   r   r0   r   )rB   rC   rD   r	   r	   r
   )test_journalhandler_message_id_on_handlerm   s    
rK   c              C   sl   t jdt jdddd d } t }tjt j|jtjd}|j	|  t
|jdksPtdtj |jd kshtd S )Nztest-loggerr<   r-   r=   )r>   r   zMESSAGE_ID=r   )r/   r?   r2   r   r   r.   r   rJ   r   r@   rA   r   r0   )rB   rC   rD   r	   r	   r
   -test_journalhandler_message_id_on_handler_hexv   s    

rL   c              C   st   t jdt jdddd d } t| jd< t }tjt j|jt	d}|j
|  t|jdksXtdtj |jd ksptd S )	Nztest-loggerr<   r-   r=   r   )r>   r   zMESSAGE_ID=r   )r/   r?   r2   	TEST_MID2__dict__r   r   r.   r   rJ   r@   rA   r   r0   r   )rB   rC   rD   r	   r	   r
   )test_journalhandler_message_id_on_message   s    

rO   c              C   sv   t jdt jdddd d } tj| jd< t }tjt j|j	t
d}|j|  t|jdksZtdtj |jd ksrtd S )	Nztest-loggerr<   r-   r=   r   )r>   r   zMESSAGE_ID=r   )r/   r?   r2   rM   r   rN   r   r   r.   r   rJ   r@   rA   r   r0   )rB   rC   rD   r	   r	   r
   -test_journalhandler_message_id_on_message_hex   s    
rP   c              C   sR   t j } t jt j}t jt j}t jt j}t jt jt jB t jB }t jd}d S )Nr   )r   ReaderZ
LOCAL_ONLYZRUNTIME_ONLYSYSTEM_ONLY)j1j2j3Zj4Zj5Zj6r	   r	   r
   test_reader_init_flags   s    rV   c             C   s   t jt tjtj W d Q R X t  tj| jtjd}W d Q R X t  tj| jtjtjB d}W d Q R X tj| jtjtj	B d}d S )N)pathflags)
r&   r5   r+   r   rQ   ZOS_ROOTr,   strpathCURRENT_USERrR   )tmpdirrS   rT   rU   r	   r	   r
   test_reader_os_root   s    r\   c             C   s>   t j| jd}t jd| jd t j| jd}t j| jd d S )N)rW   r   )r   rQ   rY   )r[   rS   rT   r	   r	   r
   test_reader_init_path   s    r]   c               C   s(   t jt tjddd W d Q R X d S )Nr   r-   )rW   )r&   r5   r#   r   rQ   r	   r	   r	   r
    test_reader_init_path_invalid_fd   s    r_   c               C   s(   t jt tjddd W d Q R X d S )Nr   )rW   )r&   r5   r#   r   rQ   r	   r	   r	   r
   %test_reader_init_path_nondirectory_fd   s    r`   c             C   s   t j| jt j}ttj tj|d}W d Q R X t	|g ksBt
t  tjtj|d}W d Q R X t	|g kstt
tjtj|d}t	|g kst
d S )N)rW   )osopenrY   O_RDONLYr*   r%   ENOSYSr   rQ   listr0   r,   ZSYSTEMrZ   )r[   fdrS   rT   rU   r	   r	   r
   test_reader_init_path_fd   s    rg   c             C   sV   t j| jd}| |j s tW d Q R X |js4ttjt t| W d Q R X d S )N)rW   )	r   rQ   rY   closedr0   r&   r5   r#   next)r[   jr	   r	   r
   test_reader_as_cm   s    
rk   c          	   C   s<   t j| jd}|  |jtj |jtjj W d Q R X d S )N)rW   )r   rQ   rY   Zmessageid_matchr   ZSD_MESSAGE_JOURNAL_STARTZSD_MESSAGE_JOURNAL_STOPr   )r[   rj   r	   r	   r
   test_reader_messageid_match   s    rl   c          	   C   s@   t j| jd}|$ |j  |jt |jtj W d Q R X d S )N)rW   )r   rQ   rY   Z	this_bootrJ   r   )r[   rj   r	   r	   r
   test_reader_this_boot   s
    
rm   c          	   C   s@   t j| jd}|$ |j  |jt |jtj W d Q R X d S )N)rW   )r   rQ   rY   Zthis_machinerJ   r   )r[   rj   r	   r	   r
   test_reader_this_machine   s
    
rn   c             C   s^   t j| jd}|& ttj |jd}W d Q R X W d Q R X t|tsLt	|t ksZt	d S )N)rW   ZFOOBAR)
r   rQ   rY   r*   r%   rd   Zquery_unique
isinstancesetr0   )r[   rj   ansr	   r	   r
   test_reader_query_unique   s    rr   c             C   s\   t j| jd}|$ ttj |j }W d Q R X W d Q R X t|tsJt	|t ksXt	d S )N)rW   )
r   rQ   rY   r*   r%   rd   Zenumerate_fieldsro   rp   r0   )r[   rj   rq   r	   r	   r
   test_reader_enumerate_fields   s    rs   c             C   sL   t j| jd}|$ ttj |j }W d Q R X W d Q R X |dksHtd S )N)rW   F)r   rQ   rY   r*   r%   rd   has_runtime_filesr0   )r[   rj   rq   r	   r	   r
   test_reader_has_runtime_files   s
    ru   c             C   sL   t j| jd}|$ ttj |j }W d Q R X W d Q R X |dksHtd S )N)rW   F)r   rQ   rY   r*   r%   rd   rt   r0   )r[   rj   rq   r	   r	   r
    test_reader_has_persistent_files   s
    rv   c             C   sP   ddd i}t j| j|d}|jdd}|dks4t|jdd}|dksLtd S )	NZxxxc             S   s   dS )Nyyyr	   )argr	   r	   r
   <lambda>   s    z(test_reader_converters.<locals>.<lambda>)rW   
converterss   abcrw   Zzzzs   )r   rQ   rY   Z_convert_fieldr0   )r[   rz   rj   r   r	   r	   r
   test_reader_converters   s    r{   c             C   s`   dd dd d}t j| j|d}|jddddgdd	gd
}|ddddgdd	gd
ks\td S )Nc             S   s   dS )Nrw   r	   )rx   r	   r	   r
   ry   
  s    z+test_reader_convert_entry.<locals>.<lambda>c             S   s   dS )NYYYr	   )rx   r	   r	   r
   ry     s    )x1x2)rW   rz   s   abcs   s   defs   )r}   Zy1r~   Zy2rw   r|   )r   rQ   rY   Z_convert_entryr0   )r[   rz   rj   r   r	   r	   r
   test_reader_convert_entry	  s    r   c             C   sF   t j| jd}tj }|j| |jd tjddd}|j| d S )N)rW   i90  i     r8   )r   rQ   rY   timeZseek_realtimedatetime)r[   rj   ZnowZlong_agor	   r	   r
   test_seek_realtime  s    

r   c              C   sF   t tj tjd} W d Q R X | jd}|dks6ttd| d d S )Nztest_journal.pyzmessage...
   zprinted message...)file)r   N)r*   r%   ENOENTr   streamwriter0   print)r   resr	   r	   r
   test_journal_stream"  s
    
r   )3Z
__future__r   
contextlibr   r%   r/   ra   r   Zuuid	tracebackr   Zsystemdr   r   Zsystemd.journalr   r&   ZUUIDrJ   rM   r   contextmanagerr*   r,   r4   r7   r;   rE   rI   rK   rL   rO   rP   rV   r\   r]   r_   r`   rg   rk   rl   rm   rn   rr   rs   ru   rv   r{   r   r   r   r	   r	   r	   r
   <module>   sV   

			

	
