test_utils.py 1.7 KB

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