/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC . Ċ Ġ* Ċ Ġ* ĠThis Ġcode Ġmay Ġonly Ġbe Ġused Ġunder Ġthe ĠBSD Ġstyle Ġlicense Ġfound Ġat Ċ Ġ* Ġhttp :// polymer . github . io / LICENSE . txt Ċ Ġ* Ċ Ġ* ĠCode Ġdistributed Ġby ĠGoogle Ġas Ġpart Ġof Ġthis Ġproject Ġis Ġalso Ġsubject Ġto Ġan Ġadditional ĠIP Ġrights Ċ Ġ* Ġgrant Ġfound Ġat Ċ Ġ* Ġhttp :// polymer . github . io / PAT ENTS . txt Ċ Ġ*/ Ċ Ċ package Ġar cs . android . util Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠAndroid Binder Stats Parser Test Ġ{ ĊĊĠ Ġprivate Ġval Ġparser Ġ= ĠAndroid Binder Stats Parser () ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġglobal Stats Are Ignored () Ġ{ ĊĠĠĠ Ġval Ġparsed Ġ= Ġparser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 2 1 8 ) ĊĊĠĠĠ ĠassertThat ( parsed ). does Not Contain Key (" BC _ TRANSACTION ") ĊĠĠĠ ĠassertThat ( parsed ). does Not Contain Key (" BC _ REPLY ") ĊĠĠĠ ĠassertThat ( parsed ). does Not Contain Key (" thread ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġreturns Stats For The Requested Process () Ġ{ ĊĠĠĠ ĠassertThat ( parser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 2 1 8 )). contains Entry (" threads ", Ġ" 5 ") ĊĠĠĠ ĠassertThat ( parser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 1 2 7 )). contains Entry (" threads ", Ġ" 6 ") ĊĠĠĠ ĠassertThat ( parser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 0 1 9 )). contains Entry (" threads ", Ġ" 8 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġparses Colon Separ ated Stats () Ġ{ ĊĠĠĠ Ġval Ġparsed Ġ= Ġparser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 1 2 7 ) ĊĠĠĠ ĠassertThat ( parsed ). contains Entry (" threads ", Ġ" 6 ") ĊĠĠĠ ĠassertThat ( parsed ). contains Entry (" requested Ġthreads ", Ġ" 0 + 4 / 1 5 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġparses Space Separ ated Stats () Ġ{ ĊĠĠĠ Ġval Ġparsed Ġ= Ġparser . parse ( BIND ER _ STATS _ OUTPUT , Ġ 6 1 2 7 ) ĊĠĠĠ ĠassertThat ( parsed ). contains Entry (" ready Ġthreads ", Ġ" 5 ") ĊĠĠĠ ĠassertThat ( parsed ). contains Entry (" free Ġasync Ġspace ", Ġ" 5 2 0 1 9 2 ") ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠB IND ER _ STATS _ OUTPUT Ġ= Ġ""" ĊĠĠĠĠĠ Ġbinder Ġstats : ĊĠĠĠĠĠ ĠBC _ TRANSACTION : Ġ 5 9 5 6 5 7 4 ĊĠĠĠĠĠ ĠBC _ REPLY : Ġ 3 8 6 1 0 1 2 ĊĠĠĠĠĠ Ġproc : Ġactive Ġ 1 5 2 Ġtotal Ġ 5 4 9 2 ĊĠĠĠĠĠ Ġthread : Ġactive Ġ 1 1 5 2 Ġtotal Ġ 5 8 2 0 1 ĊĠĠĠĠĠ Ġproc Ġ 6 2 1 8 ĊĠĠĠĠĠ Ġcontext Ġbinder ĊĠĠĠĠĠĠĠ Ġthreads : Ġ 5 ĊĠĠĠĠĠĠĠ Ġrequested Ġthreads : Ġ 0 + 2 / 1 5 ĊĠĠĠĠĠĠĠ Ġready Ġthreads Ġ 3 ĊĠĠĠĠĠĠĠ Ġfree Ġasync Ġspace Ġ 3 2 0 1 9 2 ĊĠĠĠĠĠ Ġproc Ġ 6 1 2 7 ĊĠĠĠĠĠ Ġcontext Ġbinder ĊĠĠĠĠĠĠĠ Ġthreads : Ġ 6 ĊĠĠĠĠĠĠĠ Ġrequested Ġthreads : Ġ 0 + 4 / 1 5 ĊĠĠĠĠĠĠĠ Ġready Ġthreads Ġ 5 ĊĠĠĠĠĠĠĠ Ġfree Ġasync Ġspace Ġ 5 2 0 1 9 2 ĊĠĠĠĠĠ Ġproc Ġ 6 0 1 9 ĊĠĠĠĠĠ Ġcontext Ġbinder ĊĠĠĠĠĠĠĠ Ġthreads : Ġ 8 ĊĠĠĠĠĠĠĠ Ġrequested Ġthreads : Ġ 0 + 3 / 1 5 ĊĠĠĠĠĠĠĠ Ġready Ġthreads Ġ 4 ĊĠĠĠĠĠĠĠ Ġfree Ġasync Ġspace Ġ 2 0 2 4 ĊĠĠĠ Ġ""" . trim Indent (). split To Sequence ("\ n ") ĊĠ Ġ} Ċ } Ċ