blob: 80886c861ddd5ac71021984a4ec9c19171a4d131 [file] [log] [blame]
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os, shutil, time
from autotest_lib.client.cros import constants
from autotest_lib.client.bin import test, utils
def get_pids(program_name):
Collect a list of pids for all the instances of a program.
Note that pgrep can only match against the first 15 characters
of a process name, so the given program_name will be trimmed
@param program_name the name of the program
@return list of pids
pidlist = utils.system_output("pgrep %s" % program_name[:15])
return pidlist.splitlines()
def get_number_of_logical_cpu():
From /proc/stat/.
@return number of logic cpu
ret = utils.system_output("cat /proc/stat | grep ^cpu[0-9+] | wc -l")
return int(ret)
def get_utime_stime(pids):
Snapshot the sum of utime and the sum of stime for a list of processes.
@param pids a list of pid
@return [sum_of_utime, sum_of_stime]
timelist = [0, 0]
for p in pids:
statFile = file("/proc/%s/stat" % p, "r")
T = statFile.readline().split(" ")[13:15]
for i in range(len(timelist)):
timelist[i] = timelist[i] + int(T[i])
return timelist
def get_cpu_usage(duration, time):
Calculate cpu usage based on duration and time on cpu.
@param duration
@param time on cpu
@return cpu usage
return float(time) / float(duration * get_number_of_logical_cpu())
def setup_playground(src, dst, optionfile):
Setup playground files.
@param src path
@param dst path
@param optionfile
shutil.rmtree(dst, ignore_errors=True)
shutil.copytree(src, dst)'chown chronos %s -R' % dst)
dst_path = constants.CRYPTOHOME_MOUNT_PT
opt_path = os.path.join(dst_path, '.config/google-googletalkplugin')
dst_opt = os.path.join(opt_path, 'options')'mkdir -p \'%s\'' % opt_path)'cp -f %s \'%s\'' % (optionfile, dst_opt))'chown chronos \'%s\' -R' % dst_path)'chmod o+r+w \'%s\'' % dst_opt)
def cleanup_playground(playground, testdone=False):
Cleanup playground files.
@param playground path
@param testdone
"""'pkill GoogleTalkPlugin', ignore_status=True)'rm -f /tmp/tmp.log', ignore_status=True)
if testdone: