package Ġch . soft appe al . y ass 2 Ċ Ċ import Ġkotlin . test .* Ċ Ċ class ĠCleanup Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Sup pressed Without Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġvar Ġcalled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġe 2 Ġ= Ġe . add Sup pressed Ġ{ Ġcalled Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( called ) ĊĠĠĠĠĠĠĠ ĠassertSame ( e , Ġe 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Sup pressed With Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġvar Ġcalled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġblock Exception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġe 2 Ġ= Ġe . add Sup pressed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġblock Exception ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( called ) ĊĠĠĠĠĠĠĠ ĠassertSame ( e , Ġe 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( block Exception ), Ġe . sup pressed Exceptions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Sup pressed With Suspend () Ġ= Ġy ass Run Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġvar Ġcalled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Red undant Suspend Modifier ") ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġblock () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġe 2 Ġ= Ġe . add Sup pressed Ġ{ Ġblock () Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( called ) ĊĠĠĠĠĠĠĠ ĠassertSame ( e , Ġe 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtry Finally No Try Exception No Finally Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtry Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġfinally Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġtry Finally ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 3 , Ġr ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( try Called ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( finally Called ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtry Finally With Try Exception No Finally Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtry Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġtry Exception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġvar Ġfinally Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠassertSame ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Exception , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Finally ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġtry Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( try Called ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( finally Called ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtry Finally No Try Exception With Finally Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtry Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġfinally Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġfinally Exception Ġ= ĠException () ĊĠĠĠĠĠĠĠ ĠassertSame ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Exception , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Finally ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġfinally Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( try Called ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( finally Called ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtry Finally With Try Exception With Finally Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtry Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġtry Exception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġvar Ġfinally Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġfinally Exception Ġ= ĠException () ĊĠĠĠĠĠĠĠ ĠassertSame ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Exception , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Finally ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġtry Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġfinally Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( try Called ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( finally Called ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( finally Exception ), Ġtry Exception . sup pressed Exceptions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtry Finally With Suspend () Ġ= Ġy ass Run Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtry Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġfinally Called Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Red undant Suspend Modifier ") ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġtry Block (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 2 3 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Red undant Suspend Modifier ") ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġfinally Block (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 3 2 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġtry Finally ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Block () ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Block () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 3 , Ġr ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( try Called ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( finally Called ) ĊĠĠĠ Ġ} Ċ } Ċ