test_utils.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #
  2. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. #
  5. import datetime
  6. import os
  7. import random
  8. import re
  9. import shlex
  10. import subprocess
  11. import sys
  12. import time
  13. import shutil
  14. from subprocess import check_output, CalledProcessError
  15. def t_getPIDs(process):
  16. try:
  17. pidlist = map(int, check_output(["pidof", process]).split())
  18. except CalledProcessError:
  19. pidlist = []
  20. #print process + ':list of PIDs = ' + ', '.join(str(e) for e in pidlist)
  21. return pidlist
  22. def t_kill_process_by_name(p_keywords):
  23. pid_list = []
  24. ps_info = subprocess.check_output(shlex.split("ps aux")).split("\n")
  25. for p in ps_info:
  26. if p_keywords in p:
  27. tmp = p.split(" ")
  28. tmp = [x for x in tmp if len(x) > 0]
  29. pid_list.append(tmp[1])
  30. for pid in pid_list:
  31. cmd = "kill -9 {}".format(pid)
  32. subprocess.call(shlex.split(cmd))
  33. return pid_list
  34. #proc -> name of the process
  35. #kill = 1 -> search for pid for kill
  36. #kill = 0 -> search for name (default)
  37. def t_process_exists(proc, kill = 0):
  38. ret = False
  39. processes = t_getPIDs(proc)
  40. for pid in processes:
  41. if kill == 0:
  42. return True
  43. else:
  44. print "kill [" + proc + "], pid=" + str(pid)
  45. os.kill((pid), 9)
  46. ret = True
  47. return ret
  48. def t_copy_files(source_dir, pattern, dest_dir):
  49. files = os.listdir(source_dir)
  50. for file in files:
  51. if file is '/' or file is '.' or file is '..':
  52. continue
  53. if pattern == '*' or pattern is '' or files.endswith(pattern):
  54. shutil.copy(source_dir+"/"+ file,dest_dir)