3 X]'@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z ddlmZddlZejdZejdZGdddZejd 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|_dS)N)buf)selfr $/usr/lib64/python3.6/test_journal.py__init__szMockSender.__init__Nc Ksd|g}|dk r,t|d|}|jd|||koH|koHdknrltjddddd\}}}|dk r|jd||dk r|jd j||dk r|jd ||jd d |jD|jj|dS) NzMESSAGE=hexz MESSAGE_ID=)limitrz CODE_FILE=zCODE_LINE={:d}z CODE_FUNC=css|]\}}t||VqdS)N)r).0keyvalr r r )sz"MockSender.send..)getattrappend _traceback extract_stackformatextenditemsr) rZMESSAGE MESSAGE_IDZ CODE_FILEZ CODE_LINEZ CODE_FUNCkwargsargsidr r r sends  "zMockSender.send)NNNN)__name__ __module__ __qualname__r rr r r r rsrccsJy dVWn:ttfk rD}z|j|kr2tjWYdd}~XnXdS)N)OSErrorIOErrorerrnopytestskip)codeer r r skip_oserror,s   r*c cs,y dVWntk r&tjYnXdS)N) ValueErrorr&r'r r r r skip_valueerror5s r,cCs tjj}dS)N)rJournalHandlerZ map_priority)pr r r test_priorities<sr/c Cs.ddi}tjttjf|WdQRXdS)Nz X r)r&raisesr+rr-)kwr r r "test_journalhandler_init_exceptionQs r2cCsddd}tjtjf|dS)Nr)XX3)rr-loggingINFO)r1r r r test_journalhandler_initVs r8cCsJtjdtjddddd}t}dd|jd}tjtjf|}|j|dS)Nz test-loggertestpathtestrr3)r4r5sender_function)r6 LogRecordr7rrrr-emit)recordsenderr1handlerr r r test_journalhandler_infoZs  rBcCs>tjdtjddddd}t}tjtj|jd}|j|dS)Nz test-loggerr9r:r;)r<)r6r=r7rrr-rr>)r?r@rAr r r !test_journalhandler_no_message_ides  rCcCs@tjdtjddddd}t}tjtj|jtd}|j|dS)Nz test-loggerr9r:r;)r<r) r6r=r7rrr-rTEST_MIDr>)r?r@rAr r r )test_journalhandler_message_id_on_handlerms   rEcCsBtjdtjddddd}t}tjtj|jtjd}|j |dS)Nz test-loggerr9r:r;)r<r) r6r=r7rrr-rrDr r>)r?r@rAr r r -test_journalhandler_message_id_on_handler_hexvs    rFcCsJtjdtjddddd}t|jd<t}tjtj|jt d}|j |dS)Nz test-loggerr9r:r;r)r<r) r6r=r7 TEST_MID2__dict__rrr-rrDr>)r?r@rAr r r )test_journalhandler_message_id_on_messages   rIcCsLtjdtjddddd}tj|jd<t}tjtj|j t d}|j |dS)Nz test-loggerr9r:r;r)r<r) r6r=r7rGr rHrrr-rrDr>)r?r@rAr r r -test_journalhandler_message_id_on_message_hexs   rJcCsRtj}tjtj}tjtj}tjtj}tjtjtjBtjB}tjd}dS)Nr)rReaderZ LOCAL_ONLYZ RUNTIME_ONLY SYSTEM_ONLY)j1j2j3Zj4Zj5Zj6r r r test_reader_init_flagss    rPcCstjttjtjWdQRXttj|jtjd}WdQRXttj|jtjtjBd}WdQRXtj|jtjtj Bd}dS)N)pathflags) r&r0r+rrKZOS_ROOTr,strpath CURRENT_USERrL)tmpdirrMrNrOr r r test_reader_os_roots rVcCs>tj|jd}tjd|jdtj|jd}tj|jddS)N)rQr)rrKrS)rUrMrNr r r test_reader_init_pathsrWc Cs(tjttjdddWdQRXdS)Nrr:)rQ)r&r0r#rrKr r r r test_reader_init_path_invalid_fds rYc Cs(tjttjdddWdQRXdS)Nr)rQ)r&r0r#rrKr r r r %test_reader_init_path_nondirectory_fds rZcCshtj|jtj}ttjtj|d}WdQRXt tjtj |d}WdQRXtjtj |d}dS)N)rQ) osopenrSO_RDONLYr*r%ENOSYSrrKr,ZSYSTEMrT)rUfdrMrNrOr r r test_reader_init_path_fds r`cCs@tj|jd}|WdQRXtjtt|WdQRXdS)N)rQ)rrKrSr&r0r#next)rUjr r r test_reader_as_cms   rcc Cs<tj|jd}| |jtj|jtjjWdQRXdS)N)rQ)rrKrSZmessageid_matchrZSD_MESSAGE_JOURNAL_STARTZSD_MESSAGE_JOURNAL_STOPr )rUrbr r r test_reader_messageid_matchs rdc Cs@tj|jd}|$|j|jt|jtjWdQRXdS)N)rQ)rrKrSZ this_bootrDr )rUrbr r r test_reader_this_boots  rec Cs@tj|jd}|$|j|jt|jtjWdQRXdS)N)rQ)rrKrSZ this_machinerDr )rUrbr r r test_reader_this_machines  rfcCsBtj|jd}|&ttj|jd}WdQRXWdQRXdS)N)rQZFOOBAR)rrKrSr*r%r^Z query_unique)rUrbansr r r test_reader_query_uniques  rhcCs@tj|jd}|$ttj|j}WdQRXWdQRXdS)N)rQ)rrKrSr*r%r^Zenumerate_fields)rUrbrgr r r test_reader_enumerate_fieldss  ricCs@tj|jd}|$ttj|j}WdQRXWdQRXdS)N)rQ)rrKrSr*r%r^has_runtime_files)rUrbrgr r r test_reader_has_runtime_filess  rkcCs@tj|jd}|$ttj|j}WdQRXWdQRXdS)N)rQ)rrKrSr*r%r^rj)rUrbrgr r r test_reader_has_persistent_filess  rlcCs8dddi}tj|j|d}|jdd}|jdd}dS)NZxxxcSsdS)Nyyyr )argr r r sz(test_reader_converters..)rQ converterssabcZzzzs)rrKrSZ_convert_field)rUrprbrr r r test_reader_converterss    rqcCsBddddd}tj|j|d}|jddddgdd gd }dS) NcSsdS)Nrmr )rnr r r ro sz+test_reader_convert_entry..cSsdS)NZYYYr )rnr r r ro s)x1x2)rQrpsabcssdefs)rrZy1rsZy2)rrKrSZ_convert_entry)rUrprbrr r r test_reader_convert_entry s rtcCsFtj|jd}tj}|j||jdtjddd}|j|dS)N)rQi90ir3)rrKrStimeZ seek_realtimedatetime)rUrbZnowZlong_agor r r test_seek_realtimes   rxc Cs:ttjtjd}WdQRX|jd}td|ddS)Nztest_journal.pyz message... zprinted message...)file)r*r%ENOENTrstreamwriteprint)r{resr r r test_journal_stream"s  r)3Z __future__r contextlibrwr%r6r[rvZuuid tracebackrZsystemdrrZsystemd.journalrr&ZUUIDrDrGrcontextmanagerr*r,r/r2r8rBrCrErFrIrJrPrVrWrYrZr`rcrdrerfrhrirkrlrqrtrxrr r r r sV