blob: 63b231aa52e8c9e41b535887a72c73efefa6340d [file] [log] [blame]
import os
from autotest_utils import *
from error import *
class profilers:
def __init__(self, job):
self.job = job
self.list = []
self.profdir = job.autodir + '/profilers'
self.tmpdir = job.tmpdir
# add a profiler
def add(self, profiler, *args):
try:
sys.path.insert(0, self.job.profdir + '/' + profiler)
exec 'import ' + profiler
exec 'newprofiler = %s.%s(self)' % (profiler, profiler)
finally:
sys.path.pop(0)
newprofiler.name = profiler
newprofiler.bindir = self.profdir + '/' + profiler
newprofiler.srcdir = newprofiler.bindir + '/src'
newprofiler.tmpdir = self.tmpdir + '/' + profiler
update_version(newprofiler.srcdir, newprofiler.version, newprofiler.setup)
newprofiler.initialize(*args)
self.list.append(newprofiler)
# remove a profiler
def delete(self, profiler):
nukeme = None
for p in self.list:
if (p.name == profiler):
nukeme = p
self.list.remove(p)
# are any profilers enabled ?
def present(self):
if self.list:
return 1
else:
return 0
# Start all enabled profilers
def start(self, test):
for p in self.list:
p.start(test)
# Stop all enabled profilers
def stop(self, test):
for p in self.list:
p.stop(test)
# Report on all enabled profilers
def report(self, test):
for p in self.list:
p.report(test)