o
    HXîh×
  ã                   @   sp   d dl mZmZ e d¡Zd dlmZ d dlZd dlZd dl	Z	d dl
Z
G dd„ de
jƒZedkr6e
 ¡  dS dS )é    )Úimport_helperÚthreading_helperÚsyslog)ÚsupportNc                   @   sT   e Z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S )ÚTestc                 C   s   t  ¡  d S ©N)r   Úcloselog©Úself© r   ú:/opt/python-3.10.19/usr/lib/python3.10/test/test_syslog.pyÚtearDown   s   zTest.tearDownc                 C   s   t  d¡ |  tt jd¡ d S )NÚpythonu   í €)r   ÚopenlogZassertRaisesÚUnicodeEncodeErrorr	   r   r   r   Útest_openlog   s   
zTest.test_openlogc                 C   s&   t  d¡ t   d¡ t   t jd¡ d S )Nr   ú$test message from python test_syslogú"test error from python test_syslog)r   r   ÚLOG_ERRr	   r   r   r   Útest_syslog   s   

zTest.test_syslogc                 C   s$   t  ¡  t   d¡ t   t jd¡ d S )Nr   r   )r   r   r   r	   r   r   r   Útest_syslog_implicit_open   s   
zTest.test_syslog_implicit_openc                 C   s   t  d¡ t  ¡  t  ¡  d S )Nr   )r   r   r   r	   r   r   r   Útest_closelog!   s   
zTest.test_closelogc                 C   s>   t  t j¡}t  |¡}|  t  d¡|¡ |  t  |¡|¡ d S )Nr   )r   ÚLOG_UPTOÚLOG_WARNINGZ
setlogmaskZassertEqual)r
   ÚmaskZoldmaskr   r   r   Útest_setlogmask&   s   
zTest.test_setlogmaskc                 C   sR   t  t j¡}|  |t  t j¡@ ¡ |  |t  t j¡@ ¡ |  |t  t j¡@ ¡ d S r   )r   r   r   Z
assertTrueZLOG_MASKr   ZassertFalseZLOG_INFO)r
   r   r   r   r   Útest_log_mask,   s   zTest.test_log_maskc                 C   s   t  ¡  t   d¡ d S )Nr   )r   r   r	   r   r   r   Útest_openlog_noargs2   s   zTest.test_openlog_noargsc              	      sÐ   t  ¡ ‰d‰‡‡fdd„}‡‡fdd„‰ t ¡ }t d¡ zDt j|dg}|‡ fdd	„td
ƒD ƒ7 }t 	|¡ ˆ 
¡  t d¡ d‰W d   ƒ n1 sMw   Y  W t |¡ d S W t |¡ d S t |¡ w )NFc                     s6   ˆ   d¡ d} ˆst d| › ¡ | d7 } ˆr	d S d S )Né
   é   zpython-test-)Úwaitr   r   )Úi©ÚstartÚstopr   r   Úopener9   s   
þz)Test.test_syslog_threaded.<locals>.openerc                      s$   ˆ   d¡ ˆst d¡ ˆrd S d S )Nr   r   )r    r   r   r"   r   r   Úlogger?   s   

ÿz)Test.test_syslog_threaded.<locals>.loggerg•Ö&è.>©Útargetc                    s   g | ]}t jˆ d ‘qS )r'   )Ú	threadingÚThread)Ú.0Úk)r&   r   r   Ú
<listcomp>H   s    z-Test.test_syslog_threaded.<locals>.<listcomp>r   gš™™™™™¹?T)r)   ÚEventÚsysÚgetswitchintervalr   Úsetswitchintervalr*   Úranger   Zstart_threadsÚsetÚtimeÚsleep)r
   r%   Zorig_siÚthreadsr   )r&   r#   r$   r   Útest_syslog_threaded6   s"   

ýûzTest.test_syslog_threadedN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r7   r   r   r   r   r      s    r   Ú__main__)Ztest.supportr   r   Úimport_moduler   Útestr   r/   r)   r4   ZunittestZTestCaser   r8   Úmainr   r   r   r   Ú<module>   s    
Dÿ