1 """ 2 What's eating the battery life of my laptop? Why isn't it many more 3 hours? Which software component causes the most power to be burned? 4 These are important questions without a good answer... until now. 5 """ 6 import time, os 7 from autotest_lib.client.bin import utils, profiler 8 9 class powertop(profiler.profiler): 10 version = 1 11 preserve_srcdir = True 12 13 # filenames: list of filenames to cat 14 def setup(self, *args, **dargs): 15 os.chdir(self.srcdir) 16 utils.make() 17 18 19 def start(self, test): 20 self.child_pid = os.fork() 21 if self.child_pid: # parent 22 return None 23 else: # child 24 powertop = os.path.join(self.srcdir, 'powertop') + ' -d' 25 outputfile = os.path.join(test.profdir, 'powertop') 26 while True: 27 output = open(outputfile, 'a') 28 output.write(time.asctime() + '\n') 29 data = utils.system_output('%s >> %s' % (powertop, outputfile)) 30 output.write(data) 31 output.write('\n=========================\n') 32 output.close() 33 34 35 def stop(self, test): 36 os.kill(self.child_pid, 15) 37 38 39 def report(self, test): 40 return None 41