/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠTh ib ault ĠB . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . github . th ib ault bee . sr td roid . models Ċ Ċ import Ġcom . github . th ib ault bee . sr td roid . S rt Ċ import Ġcom . github . th ib ault bee . sr td roid . enums . E poll Flag Ċ import Ġcom . github . th ib ault bee . sr td roid . enums . E poll Opt Ċ import Ġcom . github . th ib ault bee . sr td roid . enums . ErrorType Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠE poll Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġe poll : ĠE poll ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsocket : ĠSocket ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġe poll Ġ= ĠE poll () ĊĠĠĠĠĠĠĠ ĠassertTrue ( ep oll . isValid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ep oll . isValid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . release () ĊĠĠĠĠĠĠĠ Ġif Ġ(:: socket . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( socket . isValid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( S rt . clean Up (), Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd US ock Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġsocket Ġ= ĠSocket () ĊĠĠĠĠĠĠĠ ĠassertTrue ( socket . isValid ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . add US ock ( socket , ĠlistOf ( E poll Opt . ERR )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . add US ock ( socket , ĠlistOf ( E poll Opt . ERR , ĠE poll Opt . ET )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate US ock Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġsocket Ġ= ĠSocket () ĊĠĠĠĠĠĠĠ ĠassertTrue ( socket . isValid ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . update US ock ( socket , ĠlistOf ( E poll Opt . ERR )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . update US ock ( socket , ĠlistOf ( E poll Opt . ERR , ĠE poll Opt . ET )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremove US ock Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġsocket Ġ= ĠSocket () ĊĠĠĠĠĠĠĠ ĠassertTrue ( socket . isValid ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . remove US ock ( socket ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Wait Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġread F ds Ġ= ĠlistOf ( Socket (), ĠSocket (), ĠSocket ()) ĊĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf ( E poll Flag . ENABLE _ EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( E poll Flag . ENABLE _ EMPTY ), Ġe poll . flags ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . wait ( read F ds , Ġempty List (), Ġ 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Error . last Error , ĠError Type . ETIME OUT ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . wait ( read F ds , Ġtimeout Ġ= Ġ 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Error . last Error , ĠError Type . ETIME OUT ) ĊĠĠĠĠĠĠĠ Ġval Ġwrite F ds Ġ= ĠlistOf ( Socket (), ĠSocket ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . wait ( read F ds , Ġwrite F ds , Ġ 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( Error . last Error , ĠError Type . ETIME OUT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġu Wait Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . u Wait ( listOf (), Ġ 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf ( E poll Flag . ENABLE _ EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( E poll Flag . ENABLE _ EMPTY ), Ġe poll . flags ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . u Wait ( listOf ( E poll Event ( Socket (), ĠlistOf ( E poll Opt . IN , ĠE poll Opt . ET ))), Ġ 1 0 0 0 L ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf < E poll Flag >(), Ġe poll . flags ) ĊĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf ( E poll Flag . ENABLE _ EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( E poll Flag . ENABLE _ EMPTY ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . set Flags ( listOf ( E poll Flag . ENABLE _ OUTPUT CHECK )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( E poll Flag . ENABLE _ EMPTY , ĠE poll Flag . ENABLE _ OUTPUT CHECK ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . set Flags ( listOf ( E poll Flag . CLEAR _ ALL )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf < E poll Flag >(), Ġe poll . set Flags ( listOf ())) ĊĠĠĠĠĠĠĠ Ġe poll . release () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf ( E poll Flag . ENABLE _ EMPTY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf < E poll Flag >(), Ġe poll . flags ) ĊĠĠĠĠĠĠĠ Ġe poll . flags Ġ= ĠlistOf ( E poll Flag . ENABLE _ EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( E poll Flag . ENABLE _ EMPTY ), Ġe poll . flags ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrelease Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ep oll . isValid ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . release () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertFalse ( ep oll . isValid ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe poll . release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }