You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.2 KiB
34 lines
1.2 KiB
import os, sys
|
|
import common
|
|
|
|
from autotest_lib.client.common_lib import utils, error, profiler_manager
|
|
|
|
|
|
class profilers(profiler_manager.profiler_manager):
|
|
def load_profiler(self, profiler, args, dargs):
|
|
prof_dir = os.path.join(self.job.autodir, "profilers", profiler)
|
|
|
|
try:
|
|
self.job.install_pkg(profiler, "profiler", prof_dir)
|
|
except error.PackageInstallError:
|
|
pass
|
|
|
|
if not os.path.exists(prof_dir):
|
|
raise profiler_manager.ProfilerNotPresentError(profiler)
|
|
|
|
profiler_module = common.setup_modules.import_module(
|
|
profiler, "autotest_lib.client.profilers.%s" % profiler)
|
|
|
|
newprofiler = getattr(profiler_module, profiler)(self.job)
|
|
|
|
newprofiler.name = profiler
|
|
newprofiler.bindir = os.path.join(prof_dir)
|
|
newprofiler.srcdir = os.path.join(newprofiler.bindir, 'src')
|
|
newprofiler.tmpdir = os.path.join(self.tmpdir, profiler)
|
|
newprofiler.initialize(*args, **dargs)
|
|
utils.update_version(newprofiler.srcdir, newprofiler.preserve_srcdir,
|
|
newprofiler.version, newprofiler.setup,
|
|
*args, **dargs)
|
|
|
|
return newprofiler
|