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=hexz 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  r/cCs tjj}dSr)rJournalHandlerZ map_priority)pr r r test_priorities<sr2cCsFddi}tt tjfi|Wdn1s80YdS)Nz X r)r)raisesr.rr0kwr r r "test_journalhandler_init_exceptionQs r6cCs"ddd}tjtjfi|dS)Nr)XX3)rr0loggingINFOr4r r r test_journalhandler_initVs r<c CsNtdtjddddd}t}dd|jd}tjtjfi|}||dS)N test-loggertestpathtestrr7)r8r9sender_function)r: LogRecordr;rr"rr0emit)recordsenderr5handlerr r r test_journalhandler_infoZs  rGc Cs>tdtjddddd}t}tjtj|jd}||dS)Nr=r>r?r@)rA)r:rBr;rrr0r"rCrDrErFr r r !test_journalhandler_no_message_ides  rIc Cs@tdtjddddd}t}tjtj|jtd}||dSNr=r>r?r@rAr) r:rBr;rrr0r"TEST_MIDrCrHr r r )test_journalhandler_message_id_on_handlerms  rMc CsBtdtjddddd}t}tjtj|jtjd}| |dSrJ) r:rBr;rrr0r"rLrrCrHr r r -test_journalhandler_message_id_on_handler_hexvs  rNc CsJtdtjddddd}t|jd<t}tjtj|jt d}| |dSNr=r>r?r@rrK) r:rBr; TEST_MID2__dict__rrr0r"rLrCrHr r r )test_journalhandler_message_id_on_messages   rRc CsLtdtjddddd}tj|jd<t}tjtj|j t d}| |dSrO) r:rBr;rPrrQrrr0r"rLrCrHr r r -test_journalhandler_message_id_on_message_hexs   rScCsRt}ttj}ttj}ttj}ttjtjBtjB}td}dS)Nr)rReaderZ LOCAL_ONLYZ RUNTIME_ONLY SYSTEM_ONLY)j1j2j3Zj4Zj5Zj6r r r test_reader_init_flagss    rYcCsttttjWdn1s,0Yt"tj|jtjd}Wdn1sd0Yt(tj|jtjtjBd}Wdn1s0Ytj|jtjtj Bd}dS)N)pathflags) r)r3r.rrTZOS_ROOTr/strpath CURRENT_USERrU)tmpdirrVrWrXr r r test_reader_os_roots *$ $ r_cCs>tj|jd}tjd|jdtj|jd}tj|jddS)NrZr)rrTr\)r^rVrWr r r test_reader_init_pathsracCs<tttjdddWdn1s.0YdS)Nrr`r)r3r&rrTr r r r test_reader_init_path_invalid_fds rdcCs<tttjdddWdn1s.0YdS)Nrr`rcr r r r %test_reader_init_path_nondirectory_fds recCst|jtj}ttjtj|d}Wdn1s<0Yt tjtj |d}Wdn1sr0Ytjtj |d}dSNr`) osopenr\O_RDONLYr-r(ENOSYSrrTr/ZSYSTEMr])r^fdrVrWrXr r r test_reader_init_path_fds *.rlcCshtj|jd}|Wdn1s(0Yttt|Wdn1sZ0YdSrf)rrTr\r)r3r&nextr^jr r r test_reader_as_cms  rpcCsPtj|jd}|*|tj|tjjWdn1sB0YdSrf)rrTr\Zmessageid_matchrZSD_MESSAGE_JOURNAL_STARTZSD_MESSAGE_JOURNAL_STOPrrnr r r test_reader_messageid_matchs rqcCsTtj|jd}|.||t|tjWdn1sF0YdSrf)rrTr\Z this_bootrLrrnr r r test_reader_this_boots  rrcCsTtj|jd}|.||t|tjWdn1sF0YdSrf)rrTr\Z this_machinerLrrnr r r test_reader_this_machines  rsc Csjtj|jd}|Dttj|d}Wdn1s>0YWdn1s\0YdS)Nr`ZFOOBAR)rrTr\r-r(rjZ query_uniquer^roZansr r r test_reader_query_uniques  Fruc Cshtj|jd}|Bttj|}Wdn1s<0YWdn1sZ0YdSrf)rrTr\r-r(rjZenumerate_fieldsrtr r r test_reader_enumerate_fieldss  Drvc Cshtj|jd}|Bttj|}Wdn1s<0YWdn1sZ0YdSrfrrTr\r-r(rjZhas_runtime_filesrtr r r test_reader_has_runtime_filess  Drxc Cshtj|jd}|Bttj|}Wdn1s<0YWdn1sZ0YdSrfrwrtr r r test_reader_has_persistent_filess  DrycCs8dddi}tj|j|d}|dd}|dd}dS)NZxxxcSsdSNZyyyr argr r r rz(test_reader_converters..rZ convertersabcZzzz)rrTr\Z_convert_fieldr^rrorr r r test_reader_converterss    rcCsBddddd}tj|j|d}|ddddgdd gd }dS) NcSsdSrzr r{r r r r} rz+test_reader_convert_entry..cSsdS)NZYYYr r{r r r r} r)x1x2r~rrsdefs)rZy1rZy2)rrTr\Z_convert_entryrr r r test_reader_convert_entry srcCsFtj|jd}t}|||dtddd}||dS)Nr`i90ir7)rrTr\timeZ seek_realtimedatetime)r^roZnowZlong_agor r r test_seek_realtimes   rcCsNttjtd}Wdn1s*0Y|d}td|ddS)Nztest_journal.pyz message... zprinted message...)file)r-r(ENOENTrstreamwriteprint)rresr r r test_journal_stream"s ( r)3Z __future__r contextlibrr(r:rgrZuuid tracebackrZsystemdrrZsystemd.journalrr)ZUUIDrLrPrcontextmanagerr-r/r2r6r<rGrIrMrNrRrSrYr_rardrerlrprqrrrsrurvrxryrrrrr r r r sZ