a X]'@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z ddlmZddlZedZedZGdddZejd d Zejd d Zd dZddZddZddZddZddZddZddZddZ dd Z!d!d"Z"d#d$Z#d%d&Z$d'd(Z%d)d*Z&d+d,Z'd-d.Z(d/d0Z)d1d2Z*d3d4Z+d5d6Z,d7d8Z-d9d:Z.d;d<Z/d=d>Z0d?d@Z1dAdBZ2dS)C)print_functionN)journalid128 _make_lineZ 8441372f8dca4ca98694a6091fd8519fZ 8441370000000000000000001fd85000c@seZdZddZdddZdS) MockSendercCs g|_dSN)buf)selfr ?/usr/lib64/python3.9/site-packages/systemd/test/test_journal.py__init__szMockSender.__init__Nc Ksd|g}|dur,t|d|}|d|||urJ|urJdurlnntjddddd\}}}|dur|d||dur|d ||dur|d ||d d |D|j|dS) NzMESSAGE=hex MESSAGE_ID=)limitrz CODE_FILE=zCODE_LINE={:d}z CODE_FUNC=css|]\}}t||VqdSrr).0keyvalr r r )z"MockSender.send..)getattrappend _traceback extract_stackformatextenditemsr ) r ZMESSAGE MESSAGE_IDZ CODE_FILEZ CODE_LINEZ CODE_FUNCkwargsargsidr r r sends  "zMockSender.send)NNNN)__name__ __module__ __qualname__r r#r r r r rsrc csLz dVWn<ttfyF}z |j|kr0tWYd}~n d}~00dSr)OSErrorIOErrorerrnopytestskip)codeer r r skip_oserror,s   r.ccs*z dVWnty$tYn0dSr) ValueErrorr*r+r r r r skip_valueerror5s  r0cCs|tjj}|tjtjksJ|tjtjks0J|tjdtjksHJ|tjdtjks`J|tjdtjksxJ|tjtjksJ|tjdtj ksJ|tj dtj ksJ|tj tj ksJ|tj dtj ksJ|tj dtj ksJ|tj tj ksJ|tj dtj ks2J|tjtj ksHJ|tjtj ks^J|tjdtjksxJdS)N)rJournalHandlerZ map_priorityloggingZNOTSETZ LOG_DEBUGDEBUGZLOG_INFOINFOZ LOG_WARNINGZWARNZLOG_ERRZERRORZLOG_CRITZFATALZCRITICALZ LOG_ALERT)pr r r test_priorities<s"r7cCsFddi}tt tjfi|Wdn1s80YdS)Nz X r)r*raisesr/rr2kwr r r "test_journalhandler_init_exceptionQs r;cCs"ddd}tjtjfi|dS)Nr)XX3)rr2r3r5r9r r r test_journalhandler_initVs r?c Cstdtjddddd}t}dd|jd}tjtjfi|}||t|j dks\Jd|j d vsnJd |j d vsJdS) N test-loggertestpathr1testrr<)r=r>sender_functionzX=3rzX3=4) r3 LogRecordr5rr#rr2emitlenr )recordsenderr:handlerr r r test_journalhandler_infoZs rJc Csltdtjddddd}t}tjtj|jd}||t|j dksLJt dd|j dDshJdS) Nr@rAr1rB)rCcss|]}|d VqdS)rN) startswith)rmr r r rkrz4test_journalhandler_no_message_id..r) r3rDr5rrr2r#rErFr allrGrHrIr r r !test_journalhandler_no_message_ides  rOc Csjtdtjddddd}t}tjtj|jtd}||t |j dksNJdtj |j dvsfJdSNr@rAr1rBrCrrr) r3rDr5rrr2r#TEST_MIDrErFr rrNr r r )test_journalhandler_message_id_on_handlerms  rSc Csltdtjddddd}t}tjtj|jtjd}| |t |j dksPJdtj|j dvshJdSrP) r3rDr5rrr2r#rRrrErFr rNr r r -test_journalhandler_message_id_on_handler_hexvs  rTc Csttdtjddddd}t|jd<t}tjtj|jt d}| |t |j dksXJdtj |j dvspJdS Nr@rAr1rBrrQrr)r3rDr5 TEST_MID2__dict__rrr2r#rRrErFr rrNr r r )test_journalhandler_message_id_on_messages   rXc Csvtdtjddddd}tj|jd<t}tjtj|j t d}| |t |j dksZJdtj|j dvsrJdSrU)r3rDr5rVrrWrrr2r#rRrErFr rNr r r -test_journalhandler_message_id_on_message_hexs   rYcCsRt}ttj}ttj}ttj}ttjtjBtjB}td}dS)Nr)rReaderZ LOCAL_ONLYZ RUNTIME_ONLY SYSTEM_ONLY)j1j2j3Zj4Zj5Zj6r r r test_reader_init_flagss    r_cCsttttjWdn1s,0Yt"tj|jtjd}Wdn1sd0Yt(tj|jtjtjBd}Wdn1s0Ytj|jtjtj Bd}dS)N)pathflags) r*r8r/rrZZOS_ROOTr0strpath CURRENT_USERr[)tmpdirr\r]r^r r r test_reader_os_roots *$ $ recCs>tj|jd}tjd|jdtj|jd}tj|jddS)Nr`r)rrZrb)rdr\r]r r r test_reader_init_pathsrgcCs<tttjdddWdn1s.0YdS)Nrrfr*r8r'rrZr r r r test_reader_init_path_invalid_fds rjcCs<tttjdddWdn1s.0YdS)Nrrfrir r r r %test_reader_init_path_nondirectory_fds rkcCst|jtj}ttjtj|d}Wdn1s<0Yt |gksVJt tjtj |d}Wdn1s0Yt |gksJtjtj |d}t |gksJdSNrf) osopenrbO_RDONLYr.r)ENOSYSrrZlistr0ZSYSTEMrc)rdfdr\r]r^r r r test_reader_init_path_fds *.rscCs|tj|jd}||jrJWdn1s20Y|jsFJttt|Wdn1sn0YdSrl)rrZrbclosedr*r8r'nextrdjr r r test_reader_as_cms (  rxcCsPtj|jd}|*|tj|tjjWdn1sB0YdSrl)rrZrbZmessageid_matchrZSD_MESSAGE_JOURNAL_STARTZSD_MESSAGE_JOURNAL_STOPrrvr r r test_reader_messageid_matchs rycCsTtj|jd}|.||t|tjWdn1sF0YdSrl)rrZrbZ this_bootrRrrvr r r test_reader_this_boots  rzcCsTtj|jd}|.||t|tjWdn1sF0YdSrl)rrZrbZ this_machinerRrrvr r r test_reader_this_machines  r{c Cstj|jd}|Dttj|d}Wdn1s>0YWdn1s\0Yt|tstJ|tksJdS)NrfZFOOBAR) rrZrbr.r)rpZ query_unique isinstancesetrdrwZansr r r test_reader_query_uniques  Frc Cstj|jd}|Bttj|}Wdn1s<0YWdn1sZ0Yt|tsrJ|tksJdSrl) rrZrbr.r)rpZenumerate_fieldsr|r}r~r r r test_reader_enumerate_fieldss  Drc Csttj|jd}|Bttj|}Wdn1s<0YWdn1sZ0Y|duspJdSNrfFrrZrbr.r)rpZhas_runtime_filesr~r r r test_reader_has_runtime_filess  Drc Csttj|jd}|Bttj|}Wdn1s<0YWdn1sZ0Y|duspJdSrrr~r r r test_reader_has_persistent_filess  DrcCsPdddi}tj|j|d}|dd}|dks4J|dd}|dksLJdS) NZxxxcSsdSNyyyr argr r r rz(test_reader_converters..r` convertersabcrZzzz)rrZrbZ_convert_fieldrdrrwrr r r test_reader_converterss     rcCs`ddddd}tj|j|d}|ddddgdd gd }|d dd d gdd gd ks\JdS) NcSsdSrr rr r r r rz+test_reader_convert_entry..cSsdS)NYYYr rr r r r r)x1x2rrrsdefs)rZy1rZy2rr)rrZrbZ_convert_entryrr r r test_reader_convert_entry srcCsFtj|jd}t}|||dtddd}||dS)Nrfi90ir<)rrZrbtimeZ seek_realtimedatetime)rdrwZnowZlong_agor r r test_seek_realtimes   rcCsZttjtd}Wdn1s*0Y|d}|dvsJJtd|ddS)Nztest_journal.pyz message... ) Nzprinted message...)file)r.r)ENOENTrstreamwriteprint)rresr r r test_journal_stream"s  (  r)3Z __future__r contextlibrr)r3rmrZuuid tracebackrZsystemdrrZsystemd.journalrr*ZUUIDrRrVrcontextmanagerr.r0r7r;r?rJrOrSrTrXrYr_rergrjrkrsrxryrzr{rrrrrrrrr r r r sZ