/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 ĠAt lassian ĠP ty ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġorg . j its i . j ibri . capture . ffmpeg . executor Ċ Ċ import Ġio . kot lint est . Isolation Mode Ċ import Ġio . kot lint est . matchers . be InstanceOf Ċ import Ġio . kot lint est . should Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . Should Spec Ċ import Ġorg . j its i . j ibri . status . Error Scope Ċ import Ġorg . j its i . j ibri . capture . ffmpeg . Ff mpeg Error Status Ċ import Ġorg . j its i . j ibri . capture . ffmpeg . Output Line Classification Ċ import Ġorg . j its i . j ibri . capture . ffmpeg . Output Parser Ċ Ċ internal Ġclass ĠOutput Parser Test Ġ: ĠShould Spec () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġisolation Mode (): ĠI sol ation Mode ? Ġ= ĠI sol ation Mode . Instance Per Leaf ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" An Ġencoding Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" frame = ĠĠĠ 9 5 Ġfps = Ġ 3 1 Ġq = 2 7 . 0 Ġsize = ĠĠĠĠĠ 5 8 4 kB Ġtime = 0 0 : 0 0 : 0 3 . 6 0 Ġbit rate = 1 3 2 9 . 4 k bits / s Ġspeed = 1 . 1 9 x " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Values Ġ= Ġmap Of ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" frame " Ġto Ġ" 9 5 ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fps " Ġto Ġ" 3 1 ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" q " Ġto Ġ" 2 7 . 0 ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" size " Ġto Ġ" 5 8 4 kB ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" time " Ġto Ġ" 0 0 : 0 0 : 0 3 . 6 0 ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bit rate " Ġto Ġ" 1 3 2 9 . 4 k bits / s ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" speed " Ġto Ġ" 1 . 1 9 x " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . line Type ĠshouldBe ĠOutput Line Classification . ENCODING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail ĠshouldBe Ġoutput Line ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" A Ġwarning Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" Past Ġduration Ġ 0 . 6 2 2 3 6 8 Ġtoo Ġlarge " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . line Type ĠshouldBe ĠOutput Line Classification . UNKNOWN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail . shouldBe ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" An Ġerror Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" with Ġan Ġerror Ġon Ġthe Ġsession Ġscope " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" rt mp :// a . rt mp . youtube . com / live 2 / dk af k jl af kj hs adf : ĠInput / output Ġerror " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġshould Ġbe InstanceOf < Ff mpeg Error Status >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġas ĠF f mpeg Error Status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail . shouldBe ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . error Scope ĠshouldBe ĠError Scope . SESSION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" An Ġunexpected Ġexit Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" Exit ing Ġnormally , Ġreceived Ġsignal Ġ 1 5 ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġshould Ġbe InstanceOf < Ff mpeg Error Status >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġas ĠF f mpeg Error Status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail . shouldBe ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . error Scope ĠshouldBe ĠError Scope . SESSION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" An Ġexpected Ġexit Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" Exit ing Ġnormally , Ġreceived Ġsignal Ġ 2 ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . line Type ĠshouldBe ĠOutput Line Classification . FINISHED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail . shouldBe ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" An Ġun k non wn Ġoutput Ġline " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Line Ġ= Ġ" some Ġunknown Ġffmpeg Ġstatus " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġparsed Ġcorrectly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠOutput Parser . parse ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . line Type ĠshouldBe ĠOutput Line Classification . UNKNOWN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . detail . shouldBe ( output Line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ