mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
153 lines
4.9 KiB
Python
Executable File
153 lines
4.9 KiB
Python
Executable File
#
|
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
It is the entrance of the iagent test framework.
|
|
|
|
"""
|
|
from __future__ import print_function
|
|
|
|
import argparse
|
|
import datetime
|
|
import os
|
|
import pprint
|
|
import random
|
|
import re
|
|
import shlex
|
|
import subprocess
|
|
import signal
|
|
import sys
|
|
import time
|
|
|
|
sys.path.append('../../../app-sdk/python')
|
|
from framework.test_utils import *
|
|
from framework.framework import *
|
|
|
|
|
|
def signal_handler(signal, frame):
|
|
print('Pressed Ctrl+C!')
|
|
sys.exit(0)
|
|
|
|
def Register_signal_handler():
|
|
signal.signal(signal.SIGINT, signal_handler)
|
|
# signal.pause()
|
|
|
|
|
|
def flatten_args_list(l):
|
|
if l is None:
|
|
return None
|
|
|
|
return [x for y in l for x in y]
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description = "to run specific case(s) "\
|
|
"in specific suite(s) with FC test framework")
|
|
parser.add_argument('-s', dest = 'suite_id', action = 'append',
|
|
nargs = '+',
|
|
help = 'one or multiple suite ids, which are also setup ids.'\
|
|
'by default if it isn\'t passed from argument, all '\
|
|
'suites are going to be run.')
|
|
parser.add_argument('-t', dest = 'case_id', action = 'append',
|
|
nargs = '+',
|
|
help = 'one or multiple cases ids.'\
|
|
'by default if it isn\'t passed from argument, all '\
|
|
'cases in specific suites are going to be run.')
|
|
parser.add_argument('-n', dest = 'repeat_time', action = 'store',
|
|
default = 1,
|
|
help = 'how many times do you want to run. there is 40s '\
|
|
'break time between two rounds. each round includs '\
|
|
'init_setup, run_test_case and deinit_setup.')
|
|
parser.add_argument('--shuffle_all', dest = 'shuffle_all',
|
|
default = False, action = 'store_true',
|
|
help = 'shuffle_all test cases in per test suite '\
|
|
'by default, all cases under per suite should '\
|
|
'be executed by input order.')
|
|
parser.add_argument('--cases_list', dest='cases_list_file_path',
|
|
default=None,
|
|
action='store',
|
|
help="read cases list from a flie ")
|
|
parser.add_argument('--skip_proc', dest='skip_proc',
|
|
default = False, action = 'store_true',
|
|
help='do not start the test process.'\
|
|
'sometimes the gw_broker process will be started in eclipse for debug purpose')
|
|
parser.add_argument('-b', dest = 'binaries', action = 'store',
|
|
help = 'The path of target folder ')
|
|
parser.add_argument('-d', dest = 'debug', action = 'store_true',
|
|
help = 'wait user to attach the target process after launch processes ')
|
|
parser.add_argument('--rebuild', dest = 'rebuild', action = 'store_true',
|
|
help = 'rebuild all test binaries')
|
|
args = parser.parse_args()
|
|
|
|
print("------------------------------------------------------------")
|
|
print("parsing arguments ... ...")
|
|
print(args)
|
|
|
|
'''
|
|
logger = logging.getLogger('coapthon.server.coap')
|
|
logger.setLevel(logging.DEBUG)
|
|
console = logging.StreamHandler()
|
|
console.setLevel(logging.DEBUG)
|
|
logger.addHandler(console)
|
|
'''
|
|
print("------------------------------------------------------------")
|
|
print("preparing wamr binary and test tools ... ...")
|
|
os.system("cd ../../samples/simple/ && bash build.sh -p host-interp")
|
|
|
|
Register_signal_handler()
|
|
|
|
api_init_globals();
|
|
|
|
api_create_case_event();
|
|
|
|
suites_list = flatten_args_list(args.suite_id)
|
|
cases_list = flatten_args_list(args.case_id)
|
|
|
|
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
|
|
api_set_root_path(dirname);
|
|
|
|
framework = CTestFramework(dirname);
|
|
framework.repeat_time = int(args.repeat_time)
|
|
framework.shuffle_all = args.shuffle_all
|
|
framework.skip_proc=args.skip_proc
|
|
|
|
api_set_value('keep_env', args.skip_proc)
|
|
api_set_value('debug', args.debug)
|
|
api_set_value('rebuild', args.rebuild)
|
|
|
|
binary_path = args.binaries
|
|
if binary_path is None:
|
|
binary_path = os.path.abspath(dirname + '/../..')
|
|
|
|
print("checking execution binary path: " + binary_path)
|
|
if not os.path.exists(binary_path):
|
|
print("The execution binary path was not available. quit...")
|
|
os._exit(0)
|
|
api_set_value('binary_path', binary_path)
|
|
|
|
if suites_list is not None:
|
|
framework.target_suites = suites_list
|
|
else:
|
|
framework.load_suites()
|
|
|
|
framework.target_cases = cases_list
|
|
framework.start_run()
|
|
|
|
print("\n\n------------------------------------------------------------")
|
|
print("The run folder is [" + framework.running_folder +"]")
|
|
print("that's all. bye")
|
|
|
|
print("kill to quit..")
|
|
t_kill_process_by_name("start.py")
|
|
|
|
sys.exit(0)
|
|
os._exit()
|
|
|
|
|