From e1d7a1af2976d4029d0df20fff630dbf3feda78a Mon Sep 17 00:00:00 2001 From: hfutsdd <1220713556@qq.com> Date: Fri, 10 Feb 2023 17:34:53 +0800 Subject: [PATCH 1/2] add etmem testcases Signed-off-by: hfutsdd <1220713556@qq.com> --- suite2cases/etmem.json | 19 ++ .../etmem/etmem_common/common_function.sh | 208 ++++++++++++++++++ .../etmem/etmem_common/config_project.yaml | 6 + .../etmem_common/config_slide_engine.yaml | 3 + .../etmem/etmem_common/config_slide_task.yaml | 8 + .../etmem/etmem_common/etmemd.service | 7 + ...oe_test_etmem_slide_engine_function.sh.swp | Bin 0 -> 12288 bytes .../oe_test_etmem_slide_engine_function.sh | 71 ++++++ .../oe_test_etmemd_param_function.sh | 74 +++++++ .../oe_test_etmemd_reliability_function.sh | 52 +++++ .../config_project.yaml | 6 + .../config_slide_engine.yaml | 3 + .../config_slide_task.yaml | 8 + .../oe_test_one_etmemd_add_many_task.sh | 81 +++++++ 14 files changed, 546 insertions(+) create mode 100644 suite2cases/etmem.json create mode 100644 testcases/cli-test/etmem/etmem_common/common_function.sh create mode 100644 testcases/cli-test/etmem/etmem_common/config_project.yaml create mode 100644 testcases/cli-test/etmem/etmem_common/config_slide_engine.yaml create mode 100644 testcases/cli-test/etmem/etmem_common/config_slide_task.yaml create mode 100644 testcases/cli-test/etmem/etmem_common/etmemd.service create mode 100644 testcases/cli-test/etmem/oe_test_etmem_slide_engine_function/.oe_test_etmem_slide_engine_function.sh.swp create mode 100644 testcases/cli-test/etmem/oe_test_etmem_slide_engine_function/oe_test_etmem_slide_engine_function.sh create mode 100644 testcases/cli-test/etmem/oe_test_etmemd_param_function/oe_test_etmemd_param_function.sh create mode 100644 testcases/cli-test/etmem/oe_test_etmemd_reliability_function/oe_test_etmemd_reliability_function.sh create mode 100644 testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/config_project.yaml create mode 100644 testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/config_slide_engine.yaml create mode 100644 testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/config_slide_task.yaml create mode 100644 testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/oe_test_one_etmemd_add_many_task.sh diff --git a/suite2cases/etmem.json b/suite2cases/etmem.json new file mode 100644 index 000000000..1ddcacec1 --- /dev/null +++ b/suite2cases/etmem.json @@ -0,0 +1,19 @@ +{ + "path": "$OET_PATH/testcases/cli-test/etmem", + "cases": [ + { + "name": "oe_test_etmem_slide_engine_function" + }, + { + "name": "oe_test_etmemd_param_function" + }, + { + "name": "oe_test_etmemd_reliability_function" + }, + { + "name": "oe_test_one_etmemd_add_many_task" + } + ] +} + + diff --git a/testcases/cli-test/etmem/etmem_common/common_function.sh b/testcases/cli-test/etmem/etmem_common/common_function.sh new file mode 100644 index 000000000..edf2ca943 --- /dev/null +++ b/testcases/cli-test/etmem/etmem_common/common_function.sh @@ -0,0 +1,208 @@ +#!/usr/bin/bash + +# Copyright (c) 2023. Huawei Technologies Co.,Ltd.ALL rights reserved. +# This program is licensed under Mulan PSL v2. +# You can use it according to the terms and conditions of the Mulan PSL v2. +# http://license.coscl.org.cn/MulanPSL2 +# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. + +# ############################################# +# @Author : shidongdong +# @Contact : 1220713556@qq.com +# @Date : 2023/02/01 +# @License : Mulan PSL v2 +# @Desc : etmem common function +# ############################################# + +source "../../common/common_lib.sh" + +#修改配置文件参数 +function change_config_file_param() { + param=$1 + param_value=$2 + file_name=$3 + sed -i "s/${param}=.*/${param}=${param_value}/g" "${file_name}" +} + +# config etmem running env +function config_etmem_env() { + local pid=0 + local syslog_time=0 + # 清理环境,干掉测试用例之外所有包含etmem的进程 + ps aux | grep -v grep | grep -v oe_test | grep etmemd | awk '{print $2}' | xargs kill -9 + rpm -qa | grep -w etmem || DNF_INSTALL etmem + + lsmod | grep etmem_scan || modprobe etmem_scan + lsmod | grep etmem_swap || modprobe etmem_swap + + ls /usr/lib/systemd/system/etmemd.service + if [ $? -eq 0 ]; then + systemctl stop etmemd + rm -rf /usr/lib/systemd/system/etmemd.service + fi + cp ../etmem_common/etmemd.service /usr/lib/systemd/system/ + cat /usr/lib/systemd/system/etmemd.service + + systemctl daemon-reload + + #普通进程就使用sshd + sshdpid=$(systemctl status sshd | grep -v grep | grep "Main PID:" | awk '{print $3}') + change_config_file_param name sshd ../etmem_common/config_slide_task.yaml + change_config_file_param value "${sshdpid}" ../etmem_common/config_slide_task.yaml + + # 因为要不断重启rsyslogd服务,部分用例执行时间短,重启rsyslogd比较频繁,使rsyslogd状态异常 + while [ 1 ]; do + ps aux | grep -v grep | grep -v oe_test | grep rsyslog + if [ $? -eq 0 ]; then + pid=$(ps aux | grep -v grep | grep -v oe_test | grep rsyslog | awk '{print $2}') + break + elif [ ${syslog_time} -lt 120 ]; then + sleep 1 + ((syslog_time++)) + else + exit 1 #rsyslog 2分钟没有起来,默认失败退出 + fi + done +} + +#等待要启动的进程,$1为要等待的进程名 $2为启动的进程数量,$2为可选入参 +function wait_fun_start() { + fun_name=$1 + local wait_times=1 + while [ 1 ]; do + ps aux | grep -v grep | grep -v oe_test_etmem | grep "${fun_name}" + if [ $? -eq 0 ]; then + RETURN_FLAG=0 + if [ $# -ne 1 ]; then #如果参数总数不是1 说明有两个参数,需要找进程出现的个数 + local fun_num=$2 + local time_times=0 + while [ 1 ]; do #并发进程启动需要一个时间段,这个循环是等待所有并发进程启动,超时时间5秒 + fun_num=$(ps aux | grep -v grep | grep -v oe_test | grep "${fun_name}" | wc -l) + if [ "${fun_num}" -ne "${fun_num}" -a "${time_times}" -lt 100 ]; then #数量不相等,且没有超出次数,sleep 0.1 + ((time_times++)) + sleep 0.1 + elif [ "${time_times}" -gt 100 ]; then #无论数量等不等,超出次数,返回失败 + RETURN_FLAG=1 + exit 1 + else #数量相等,直接break,返回成功 + break + fi + done + fi + return "${RETURN_FLAG}" + else + #server 1秒起不来就返回失败 + if [ "${wait_times}" -gt 30 ]; then + LOG_INFO "$1 is error ,return" + RETURN_FLAG=1 + return "${RETURN_FLAG}" + else + LOG_INFO "$1 is not up ,wait 0.1" + sleep 0.1 + ((wait_times++)) + fi + fi + done +} + +#启动etmemd,跟参数,参数-s以及-l +function get_up_etmemd() { + etmemd_sock=$1 + etmemd_level=$2 + /usr/bin/etmemd -s "${etmemd_sock}" -l "${etmemd_level}" & +} + +# etmem add project +function etmem_add_project() { + project_name=$1 + add_project_sock=$2 + /usr/bin/etmem obj add -f "${project_name}" -s "${add_project_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +# etmem add engine +function etmem_add_slide_engine() { + slide_engine_name=$1 + add_slide_engine_sock=$2 + /usr/bin/etmem obj add -f "${slide_engine_name}" -s "${add_slide_engine_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem add task +function etmem_add_slide_task() { + slide_task_name=$1 + slide_add_task_sock=$2 + /usr/bin/etmem obj add -f "${slide_task_name}" -s "${slide_add_task_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem start project, +function etmem_start_project() { + start_name=$1 + start_sock=$2 + /usr/bin/etmem project start -n "${start_name}" -s "${start_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem stop project, +function etmem_stop_project() { + stop_name=$1 + stop_sock=$2 + /usr/bin/etmem project stop -n "${stop_name}" -s "${stop_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem del project +function etmem_del_slide_task() { + del_slide_task_name=$1 + del_slide_task_sock=$2 + + /usr/bin/etmem obj del -f "${del_slide_task_name}" -s "${del_slide_task_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem del engine +function etmem_del_slide_engine() { + del_slide_engine_name=$1 + del_slide_engine_sock=$2 + + /usr/bin/etmem obj del -f "${del_slide_engine_name}" -s "${del_slide_engine_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem del project +function etmem_del_project() { + project_name=$1 + del_project_sock=$2 + /usr/bin/etmem obj del -f "${project_name}" -s "${del_project_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +#etmem show project +function etmem_show_project() { + show_name=$1 + show_sock=$2 + /usr/bin/etmem project show -n "${show_name}" -s "${show_sock}" + [[ $? -ne 0 ]] && return 1 + return 0 +} + +function get_up_service() { + ls /usr/lib/systemd/system/etmemd.service + [[ $? -ne 0 ]] && cp ../etmem_common/etmemd.service /usr/lib/systemd/system/ + systemctl daemon-reload + systemctl restart etmemd + [[ $? -ne 0 ]] && return 1 + return 0 +} diff --git a/testcases/cli-test/etmem/etmem_common/config_project.yaml b/testcases/cli-test/etmem/etmem_common/config_project.yaml new file mode 100644 index 000000000..5fd05269c --- /dev/null +++ b/testcases/cli-test/etmem/etmem_common/config_project.yaml @@ -0,0 +1,6 @@ +[project] +name=etmemtest_slide +loop=3 +interval=1 +sleep=3 +scan_type=page diff --git a/testcases/cli-test/etmem/etmem_common/config_slide_engine.yaml b/testcases/cli-test/etmem/etmem_common/config_slide_engine.yaml new file mode 100644 index 000000000..99e2ed113 --- /dev/null +++ b/testcases/cli-test/etmem/etmem_common/config_slide_engine.yaml @@ -0,0 +1,3 @@ +[engine] +name=slide +project=etmemtest_slide diff --git a/testcases/cli-test/etmem/etmem_common/config_slide_task.yaml b/testcases/cli-test/etmem/etmem_common/config_slide_task.yaml new file mode 100644 index 000000000..939c1a0eb --- /dev/null +++ b/testcases/cli-test/etmem/etmem_common/config_slide_task.yaml @@ -0,0 +1,8 @@ +[task] +project=etmemtest_slide +engine=slide +name=sshd +type=pid +value=24500 +max_threads=5 +T=1 diff --git a/testcases/cli-test/etmem/etmem_common/etmemd.service b/testcases/cli-test/etmem/etmem_common/etmemd.service new file mode 100644 index 000000000..df32af888 --- /dev/null +++ b/testcases/cli-test/etmem/etmem_common/etmemd.service @@ -0,0 +1,7 @@ +[Unit] +Description=etmemd server daemon +[Service] +Type=forking +PIDFile=/run/etmemd.pid +ExecStart=/usr/bin/etmemd -l -0 -s service-sock -m +ExecStop=sh /bin/stop.sh diff --git a/testcases/cli-test/etmem/oe_test_etmem_slide_engine_function/.oe_test_etmem_slide_engine_function.sh.swp b/testcases/cli-test/etmem/oe_test_etmem_slide_engine_function/.oe_test_etmem_slide_engine_function.sh.swp new file mode 100644 index 0000000000000000000000000000000000000000..7677f1bd75d9f4e937e162ec1ca4f635f9955c97 GIT binary patch literal 12288 zcmeHNOK%%h6uvDj@A7CXu|2gb(u&06IBF5CKy?!*8PzY@PTFiR)0rE4$ha47W%%BkM|pXz`aWB@NgeRt?#>B8)|EA+~b}m zcqB|C;*n-L_KdvKxNy0v`MfLdy2)KPa%_utx!1Ej-d&G9Q`o+DKRSh|zt6suSTXQu zFmQy;m1dJt&*x6iv7;-GhTF`&l(;5*<;;3n`c za0Pe?_~9AGJ_0@jR)J%{QQ+IB8T$s<0rJ4lPcim6@G0;K@IGJwWnc<;8Tk82#=Zt_ z0A=7P@FH*s`1J|KJ_EYIo4|SC2=L?MjC~BO0BxWJoCjV34g-IHm)pPxzrLYDGJ+$>x`a`w?N%hB#dYy z5hO;V?MQIf6b^-GqcTE4QPj5*(T43fhT~AuT9rPkHkP`2eX&6~)8U2}2dR)`3l?#2 zGnY)vQzDfQ*q{lE0v}ykQt#Ahx{f0|(M-FxEba`P8TqlxyQIY{^34q{CgzR1JDNQH zG$mm_3zC(|`9r1>|GIaq9|=DgZaiHwA!2f^Ji$Yf)~3OU>`f!XvncbBB_7Q$SLQEu zTb1@owS%BvkG71U>&5O)j*2u3zWdzVpkxsmaGJ6`(0u*mDbo<7!K|rC3y5Q2TRS-o zaTRey?@%w~0j;`i*v6f)wLw$YgV6Q_ohT;l5|C`q>YN!ct%k%p)*fGjA}zo8D3U%a#fQ@(Wr_-SeEHEUPNZ!@Or$PoeJx= z!@GeI8ZK=bPRx^J8l=L=Tgwp7dj2_99GUG7hC`>tDHoj)N52#Q`J6{oR*F|${7WRpF-aAm{K4!)|oisEi zN;%lm)VQxBE8|ZG4EVwJF8_s3$aBy3dSuyQx=i}YOV1GbULlOJx6y<+H>#K*Ogn_r zii!LcoKdw+ z?nOMCQHvc^f3sbs%~E2|5K@#$OU2ThRxD}7St*6f$PPuX$Pjhs!+}7LEbQvo*VEA&m)xw_j3RYi)-Wpxf>kHD}aP)-;&S{#H zMhqNBrc?04UcvOVgcQV0Ms3ZH$wU}qgw+;gn5G|EGMkaul0d;jH%h(±4?_NYhX zuirtgB&O51Bl#NW$pal9v&AinJ&T9CVjkB$%o+gPws>l0cWh1yly)2 Date: Fri, 10 Feb 2023 17:38:32 +0800 Subject: [PATCH 2/2] clean env after executing the testcase Signed-off-by: hfutsdd <1220713556@qq.com> --- .../oe_test_one_etmemd_add_many_task.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/oe_test_one_etmemd_add_many_task.sh b/testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/oe_test_one_etmemd_add_many_task.sh index c62f490d2..89afdc9bf 100644 --- a/testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/oe_test_one_etmemd_add_many_task.sh +++ b/testcases/cli-test/etmem/oe_test_one_etmemd_add_many_task/oe_test_one_etmemd_add_many_task.sh @@ -76,6 +76,7 @@ function run_test() { function post_test() { # clean env LOG_INFO "cleanup etmem test env" + rm -f ./config_project.yaml ./config_slide_engine.yaml ./config_slide_task.yaml killall etmemd } main "$@" -- Gitee