summaryrefslogtreecommitdiffstats
path: root/src/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/component-test/framework/test_utils.py
blob: e3eb645aec3030702755081fb88c110e780ff8b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from __future__ import print_function
#
# Copyright (C) 2019 Intel Corporation.  All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#

import datetime
import os
import random
import re
import shlex
import subprocess
import sys
import time
import shutil
from subprocess import check_output, CalledProcessError

def t_getPIDs(process):
    try:
        pidlist = map(int, check_output(["pidof", process]).split())
    except  CalledProcessError:
        pidlist = []
    #print process + ':list of PIDs = ' + ', '.join(str(e) for e in pidlist)
    return pidlist


def t_kill_process_by_name(p_keywords):
    pid_list = []
    ps_info = subprocess.check_output(shlex.split("ps aux")).split("\n")
    for p in ps_info:
        if p_keywords in p:
            tmp = p.split(" ")
            tmp = [x for x in tmp if len(x) > 0]
            pid_list.append(tmp[1])

    for pid in pid_list:
        cmd = "kill -9 {}".format(pid)
        subprocess.call(shlex.split(cmd))

    return pid_list



#proc    -> name of the process
#kill = 1  -> search for pid for kill
#kill = 0  -> search for name (default)

def t_process_exists(proc, kill = 0):
    ret = False
    processes  = t_getPIDs(proc)

    for pid in processes:
            if kill == 0:
                return True
            else:
                print("kill [" + proc + "], pid=" + str(pid))
                os.kill((pid), 9)
                ret = True
    return ret

def t_copy_files(source_dir, pattern, dest_dir):
    files = os.listdir(source_dir)
    for file in files:
        if file in ('/', '.', '..'):
            continue

        if pattern in ('*', '') or files.endswith(pattern):
            shutil.copy(source_dir+"/"+ file, dest_dir)