""" What's eating the battery life of my laptop? Why isn't it many more hours? Which software component causes the most power to be burned? These are important questions without a good answer... until now. """ import time, os from autotest_lib.client.bin import utils, profiler class powertop(profiler.profiler): version = 1 preserve_srcdir = True # filenames: list of filenames to cat def setup(self, *args, **dargs): os.chdir(self.srcdir) utils.make() def start(self, test): self.child_pid = os.fork() if self.child_pid: # parent return None else: # child powertop = os.path.join(self.srcdir, 'powertop') + ' -d' outputfile = os.path.join(test.profdir, 'powertop') while True: output = open(outputfile, 'a') output.write(time.asctime() + '\n') data = utils.system_output('%s >> %s' % (powertop, outputfile)) output.write(data) output.write('\n=========================\n') output.close() def stop(self, test): os.kill(self.child_pid, 15) def report(self, test): return None