1*90c8c64dSAndroid Build Coastguard Worker#!/usr/bin/env python2.7 -B 2*90c8c64dSAndroid Build Coastguard Worker 3*90c8c64dSAndroid Build Coastguard Workerimport ps 4*90c8c64dSAndroid Build Coastguard Worker 5*90c8c64dSAndroid Build Coastguard Worker 6*90c8c64dSAndroid Build Coastguard Workerdef test_pids(): 7*90c8c64dSAndroid Build Coastguard Worker text = """USER PID PPID VSIZE RSS WCHAN PC NAME 8*90c8c64dSAndroid Build Coastguard Workerroot 1 0 10632 776 SyS_epoll_ 0000000000 S /init 9*90c8c64dSAndroid Build Coastguard Workerroot 2 0 0 0 kthreadd 0000000000 S kthreadd 10*90c8c64dSAndroid Build Coastguard Workeru0_a22 7308 633 1808572 79760 SyS_epoll_ 0000000000 S com.google.android.dialer 11*90c8c64dSAndroid Build Coastguard Workeru0_a19 7370 633 1841228 37828 SyS_epoll_ 0000000000 S com.google.android.gms.feedback 12*90c8c64dSAndroid Build Coastguard Workeru0_a136 7846 634 1320656 119964 SyS_epoll_ 0000000000 S com.sonos.acr 13*90c8c64dSAndroid Build Coastguard Worker""" 14*90c8c64dSAndroid Build Coastguard Worker 15*90c8c64dSAndroid Build Coastguard Worker actual = ps.ParsePs(text) 16*90c8c64dSAndroid Build Coastguard Worker 17*90c8c64dSAndroid Build Coastguard Worker expected = [ 18*90c8c64dSAndroid Build Coastguard Worker ('root', '1', '0', '/init'), 19*90c8c64dSAndroid Build Coastguard Worker ('root', '2', '0', 'kthreadd'), 20*90c8c64dSAndroid Build Coastguard Worker ('u0_a22', '7308', '633', 'com.google.android.dialer'), 21*90c8c64dSAndroid Build Coastguard Worker ('u0_a19', '7370', '633', 'com.google.android.gms.feedback'), 22*90c8c64dSAndroid Build Coastguard Worker ('u0_a136', '7846', '634', 'com.sonos.acr') 23*90c8c64dSAndroid Build Coastguard Worker ] 24*90c8c64dSAndroid Build Coastguard Worker 25*90c8c64dSAndroid Build Coastguard Worker if actual != expected: 26*90c8c64dSAndroid Build Coastguard Worker print "Expected:" 27*90c8c64dSAndroid Build Coastguard Worker print expected 28*90c8c64dSAndroid Build Coastguard Worker print 29*90c8c64dSAndroid Build Coastguard Worker print "Actual:" 30*90c8c64dSAndroid Build Coastguard Worker print actual 31*90c8c64dSAndroid Build Coastguard Worker raise Exception("test failed") 32*90c8c64dSAndroid Build Coastguard Worker 33*90c8c64dSAndroid Build Coastguard Worker 34*90c8c64dSAndroid Build Coastguard Workerdef test_uids(): 35*90c8c64dSAndroid Build Coastguard Worker text = """vers,1 36*90c8c64dSAndroid Build Coastguard Workervrfy,com.android.vending,10035 37*90c8c64dSAndroid Build Coastguard Workerifv,com.google.android.gms,10019 38*90c8c64dSAndroid Build Coastguard Workerlib,com.vzw.apnlib,jar,/system/app/VZWAPNLib/VZWAPNLib.apk 39*90c8c64dSAndroid Build Coastguard Workerlib,com.google.android.media.effects,jar,/system/framework/com.google.android.media.effects.jar 40*90c8c64dSAndroid Build Coastguard Workerpkg,com.amazon.mShop.android.shopping,10118,116434610,1486361139496,1491403362196,com.android.vending 41*90c8c64dSAndroid Build Coastguard Workerpkg-splt,base,0 42*90c8c64dSAndroid Build Coastguard Workerpkg-usr,0,IbsusL,0,com.android.vending 43*90c8c64dSAndroid Build Coastguard Workerpkg,com.getgoodcode.bart,10129,21,1486361637815,1486361637815,com.android.vending 44*90c8c64dSAndroid Build Coastguard Workerpkg-splt,base,0 45*90c8c64dSAndroid Build Coastguard Workerpkg-usr,0,IbsuSl,0,? 46*90c8c64dSAndroid Build Coastguard Workerpkg,com.flightaware.android.liveFlightTracker,10115,138,1486361042695,1486361042695,com.android.vending 47*90c8c64dSAndroid Build Coastguard Workerpkg-splt,base,0 48*90c8c64dSAndroid Build Coastguard Workerpkg-usr,0,IbsuSl,0,? 49*90c8c64dSAndroid Build Coastguard Workerpkg,com.android.cts.priv.ctsshim,10010,24,1230796800000,1230796800000,? 50*90c8c64dSAndroid Build Coastguard Workerpkg-splt,base,0 51*90c8c64dSAndroid Build Coastguard Workerpkg-usr,0,IbsusL,0,? 52*90c8c64dSAndroid Build Coastguard Worker""" 53*90c8c64dSAndroid Build Coastguard Worker actual = ps.ParseUids(text) 54*90c8c64dSAndroid Build Coastguard Worker 55*90c8c64dSAndroid Build Coastguard Worker expected = [ 56*90c8c64dSAndroid Build Coastguard Worker ('10118', 'com.amazon.mShop.android.shopping'), 57*90c8c64dSAndroid Build Coastguard Worker ('10129', 'com.getgoodcode.bart'), 58*90c8c64dSAndroid Build Coastguard Worker ('10115', 'com.flightaware.android.liveFlightTracker'), 59*90c8c64dSAndroid Build Coastguard Worker ('10010', 'com.android.cts.priv.ctsshim') 60*90c8c64dSAndroid Build Coastguard Worker ] 61*90c8c64dSAndroid Build Coastguard Worker 62*90c8c64dSAndroid Build Coastguard Worker if actual != expected: 63*90c8c64dSAndroid Build Coastguard Worker print "Expected:" 64*90c8c64dSAndroid Build Coastguard Worker print expected 65*90c8c64dSAndroid Build Coastguard Worker print 66*90c8c64dSAndroid Build Coastguard Worker print "Actual:" 67*90c8c64dSAndroid Build Coastguard Worker print actual 68*90c8c64dSAndroid Build Coastguard Worker raise Exception("test failed") 69*90c8c64dSAndroid Build Coastguard Worker 70*90c8c64dSAndroid Build Coastguard Worker 71*90c8c64dSAndroid Build Coastguard Workerdef test_update(): 72*90c8c64dSAndroid Build Coastguard Worker """Requires an attached device.""" 73*90c8c64dSAndroid Build Coastguard Worker processes = ps.ProcessSet() 74*90c8c64dSAndroid Build Coastguard Worker processes.Update() 75*90c8c64dSAndroid Build Coastguard Worker processes.Update() 76*90c8c64dSAndroid Build Coastguard Worker processes.Print() 77*90c8c64dSAndroid Build Coastguard Worker process = processes.FindPid("0", "0") 78*90c8c64dSAndroid Build Coastguard Worker print "process:", process 79*90c8c64dSAndroid Build Coastguard Worker print "uid:", process.uid.uid 80*90c8c64dSAndroid Build Coastguard Worker print "username:", process.uid.name 81*90c8c64dSAndroid Build Coastguard Worker print "pid:", process.pid 82*90c8c64dSAndroid Build Coastguard Worker print "ppid:", process.ppid 83*90c8c64dSAndroid Build Coastguard Worker print "name:", process.name 84*90c8c64dSAndroid Build Coastguard Worker print "displayName:", process.DisplayName() 85*90c8c64dSAndroid Build Coastguard Worker 86*90c8c64dSAndroid Build Coastguard Worker 87*90c8c64dSAndroid Build Coastguard Workerdef main(): 88*90c8c64dSAndroid Build Coastguard Worker #test_uids() 89*90c8c64dSAndroid Build Coastguard Worker #test_pids() 90*90c8c64dSAndroid Build Coastguard Worker test_update() 91*90c8c64dSAndroid Build Coastguard Worker 92*90c8c64dSAndroid Build Coastguard Worker 93*90c8c64dSAndroid Build Coastguard Workerif __name__ == "__main__": 94*90c8c64dSAndroid Build Coastguard Worker main() 95*90c8c64dSAndroid Build Coastguard Worker 96*90c8c64dSAndroid Build Coastguard Worker 97*90c8c64dSAndroid Build Coastguard Worker# vim: set ts=2 sw=2 sts=2 tw=100 nocindent autoindent smartindent expandtab: 98