From 41bc71d4171a88f1836548d2edd42874cb2679a7 Mon Sep 17 00:00:00 2001 From: Ma Feng Date: Sat, 26 Mar 2022 14:37:30 +0800 Subject: [PATCH 1/2] linuxkerneltest: fix some shell format and update cpusetdecouple_cpuhotplug_t 1. fix 6 shell format issues 2. delete print_error info when config file not exists 3. change some print info to be clearer Signed-off-by: Ma Feng --- .../testcases/bin/cpusetdecouple_cpuhotplug01.sh | 11 +++++------ .../testcases/bin/cpusetdecouple_cpuhotplug02.sh | 13 ++++++------- .../testcases/bin/cpusetdecouple_cpuhotplug03.sh | 15 +++++++-------- .../testcases/bin/cpusetdecouple_cpuhotplug04.sh | 15 +++++++-------- test/moduletest/runtest/runtest | 4 ++-- 5 files changed, 27 insertions(+), 31 deletions(-) diff --git a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug01.sh b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug01.sh index e1debc3..6a9e31e 100644 --- a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug01.sh +++ b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug01.sh @@ -24,9 +24,6 @@ # History: Mar 15 2022 - init scripts # ################################################################################ - -ret=0 - source tst_oh.sh do_setup() @@ -45,6 +42,8 @@ do_setup() do_test() { + local ret=0 + tst_res TINFO "Start test cupsetdecouple_cpuhotplug01" mkdir /dev/cpuset/hotplug01 echo "0-3" > /dev/cpuset/hotplug01/cpuset.cpus @@ -58,7 +57,7 @@ do_test() echo 0 > /sys/devices/system/cpu/cpu$i/online cat /dev/cpuset/hotplug01/cpuset.cpus cpu_set=$(cat /dev/cpuset/hotplug01/cpuset.cpus) - if [ $cpu_set == '0-3' ]; then + if [ "$cpu_set" == '0-3' ]; then tst_res TINFO "hotplug01 cpu$i offline cpuset decouple success" else tst_res TINFO "hotplug01 cpu$i offline cpuset decouple fail" @@ -68,9 +67,9 @@ do_test() done if [ $ret -eq 0 ];then - tst_res TPASS "cpusetdecouple_cpuhotplug01 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TPASS "CPU hot-plug and CPUSET decoupling are implemented pass." else - tst_res TFAIL "cpusetdecouple_cpuhotplug01 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TFAIL "CPU hot-plug and CPUSET decoupling are implemented failed!" fi } diff --git a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug02.sh b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug02.sh index d487371..6da5d98 100644 --- a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug02.sh +++ b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug02.sh @@ -24,9 +24,6 @@ # History: Mar 15 2022 - init scripts # ################################################################################ - -ret=0 - source tst_oh.sh do_setup() @@ -45,6 +42,8 @@ do_setup() do_test() { + local ret=0 + tst_res TINFO "Start test cupset_decouple_cpuhotplug02" mkdir /dev/cpuset/hotplug02 echo "1" > /dev/cpuset/hotplug02/cpuset.cpus @@ -59,7 +58,7 @@ do_test() cat /dev/cpuset/hotplug02/cpuset.cpus cpu_set=$(cat /dev/cpuset/hotplug02/cpuset.cpus) - if [ $cpu_set == '1' ]; then + if [ "$cpu_set" == '1' ]; then tst_res TINFO "hotplug02 cpu1 offline cpuset decouple success" else tst_res TINFO "hotplug02 cpu1 offline cpuset decouple fail" @@ -67,12 +66,12 @@ do_test() fi if [ $ret -eq 0 ];then - tst_res TPASS "cpusetdecouple_cpuhotplug02 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TPASS "process are migrated when the CPU is offline pass." else - tst_res TFAIL "cpusetdecouple_cpuhotplug02 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TFAIL "process are migrated when the CPU is offline failed!" fi - echo 1 > /sys/devices/system/cpu/cpu1/online #offline cpu$i + echo 1 > /sys/devices/system/cpu/cpu1/online } diff --git a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug03.sh b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug03.sh index f7bdbfe..0a7a696 100644 --- a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug03.sh +++ b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug03.sh @@ -24,9 +24,6 @@ # History: Mar 15 2022 - init scripts # ################################################################################ - -ret=0 - source tst_oh.sh do_setup() @@ -45,15 +42,17 @@ do_setup() do_test() { + local ret=0 + tst_res TINFO "Start test cupset_decouple_cpuhotplug03" mkdir /dev/cpuset/hotplug03 - echo 0 > /sys/devices/system/cpu/cpu2/online #offline cpu2 - echo 0 > /sys/devices/system/cpu/cpu3/online #offline cpu3 + echo 0 > /sys/devices/system/cpu/cpu2/online + echo 0 > /sys/devices/system/cpu/cpu3/online echo "0-3" > /dev/cpuset/hotplug03/cpuset.cpus cat /dev/cpuset/hotplug03/cpuset.cpus cpu_set=$(cat /dev/cpuset/hotplug03/cpuset.cpus) - if [ $cpu_set == '0-3' ]; then + if [ "$cpu_set" == '0-3' ]; then tst_res TINFO "hotplug03 cpu2 cpu3 offline cpuset decouple success" else tst_res TINFO "hotplug03 cpu2 cpu3 offline cpuset decouple fail" @@ -61,9 +60,9 @@ do_test() fi if [ $ret -eq 0 ]; then - tst_res TPASS "cpusetdecouple_cpuhotplug03 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TPASS "processes will be migrated to new online CPU pass." else - tst_res TFAIL "cpusetdecouple_cpuhotplug03 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TFAIL "processes will be migrated to new online CPU failed!" fi for i in $(seq 1 100); do diff --git a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug04.sh b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug04.sh index 270f5b2..8519b34 100644 --- a/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug04.sh +++ b/test/moduletest/runtest/bin/cpusetdecouple_cpuhotplug_t/testcases/bin/cpusetdecouple_cpuhotplug04.sh @@ -24,9 +24,6 @@ # History: Mar 15 2022 - init scripts # ################################################################################# - -ret=0 - source tst_oh.sh do_setup() @@ -45,6 +42,8 @@ do_setup() do_test() { + local ret=0 + tst_res TINFO "Start test cupset_decouple_cpuhotplug04" mkdir /dev/cpuset/hotplug04 echo "0-3" > /dev/cpuset/hotplug04/cpuset.cpus @@ -55,10 +54,10 @@ do_test() for i in $(seq 0 $cpu_total); do echo $i - echo 0 > /sys/devices/system/cpu/cpu$i/online #offline cpu$i + echo 0 > /sys/devices/system/cpu/cpu$i/online cat /dev/cpuset/hotplug04/cpuset.cpus cpu_set=$(cat /dev/cpuset/hotplug04/cpuset.cpus) - if [ $cpu_set == '0-3' ]; then + if [ "$cpu_set" == '0-3' ]; then tst_res TINFO "hotplug04 cpu$i offline cpuset decouple success" else tst_res TINFO "hotplug04 cpu$i offline cpuset decouple fail" @@ -67,13 +66,13 @@ do_test() done if [ $ret -eq 0 ]; then - tst_res TPASS "cpusetdecouple_cpuhotplug04 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TPASS "CPU online and offline function pass." else - tst_res TFAIL "cpusetdecouple_cpuhotplug04 CPU hot-plug and CPUSET decoupling are implemented." + tst_res TFAIL "CPU online and offline function failed!" fi for i in $(seq 0 $cpu_total); do - echo 1 > /sys/devices/system/cpu/cpu$i/online #offline cpu$i + echo 1 > /sys/devices/system/cpu/cpu$i/online done } diff --git a/test/moduletest/runtest/runtest b/test/moduletest/runtest/runtest index 24758c3..2125db1 100644 --- a/test/moduletest/runtest/runtest +++ b/test/moduletest/runtest/runtest @@ -346,7 +346,6 @@ do_test_by_conf() curtest_timeout=0 if [ ! -f ${TEST_ROOT}/tests/${testsuite} ]; then - print_error "${testsuite} file not found in ${TEST_ROOT}/tests!" continue fi @@ -401,7 +400,7 @@ do_test_by_conf() source ./${testsuite}_uninit.sh &> ${RESULT_LOG_DIR}/${testsuite}/uninit.log fi - testsuite_total=$((${testsuite_totaol} + 1)) + testsuite_total=$((${testsuite_total} + 1)) echo "Test total: ${curtest_total}" >> ${RESULT_LOG_DIR}/${testsuite}/summary.log echo "Test failed: ${curtest_fail}" >> ${RESULT_LOG_DIR}/${testsuite}/summary.log echo "Test timeout: ${curtest_timeout}" >> ${RESULT_LOG_DIR}/${testsuite}/summary.log @@ -508,6 +507,7 @@ main() *) print_usage;; esac done + echo "start sh runtest test -t $test_scenario -n $no_need_run_testlist -l $testcase_timelimit" do_test_by_conf else print_usage -- Gitee From c096f905d6a46e2c9d2f79be1ddfa014c32cbc77 Mon Sep 17 00:00:00 2001 From: Ma Feng Date: Mon, 28 Mar 2022 22:37:35 +0800 Subject: [PATCH 2/2] linuxkerneltest: add enhancedswap test suite Signed-off-by: Ma Feng --- .../testcases/bin/enhancedswap01.sh | 72 +++++++++++++++ .../testcases/bin/enhancedswap02.sh | 83 +++++++++++++++++ .../testcases/bin/enhancedswap03.sh | 65 ++++++++++++++ .../testcases/bin/enhancedswap04.sh | 86 ++++++++++++++++++ .../testcases/bin/enhancedswap05.sh | 88 +++++++++++++++++++ .../runtest/bin/enhancedswap_t_init.sh | 78 ++++++++++++++++ .../runtest/bin/enhancedswap_t_uninit.sh | 43 +++++++++ test/moduletest/runtest/conf/OH_RK3568_config | 1 + test/moduletest/runtest/tests/enhancedswap_t | 30 +++++++ 9 files changed, 546 insertions(+) create mode 100644 test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap01.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap02.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap03.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap04.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap05.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t_init.sh create mode 100644 test/moduletest/runtest/bin/enhancedswap_t_uninit.sh create mode 100644 test/moduletest/runtest/tests/enhancedswap_t diff --git a/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap01.sh b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap01.sh new file mode 100644 index 0000000..0f63380 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap01.sh @@ -0,0 +1,72 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap01.sh +# +# Description: enhanced swap /dev/memcg/memory.avail_buffers interface test +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +source tst_oh.sh + +do_setup() +{ + +} + +do_test() +{ + local ret=0 + local res=0 + local memcg_availbffers=/dev/memcg/memory.avail_buffers + + tst_res TINFO "Start enhanced swap /dev/memcg/memory.avail_buffers \ + interface invalid setting test" + echo 0 1620 1529 0 > $memcg_availbffers + ret=$(($ret + $?)) + echo 0 1620 -100 0 > $memcg_availbffers + ret=$(($ret + $?)) + echo 0 -100 -100 0 > $memcg_availbffers + ret=$(($ret + $?)) + echo 0 10000001 10000000 0 > $memcg_availbffers + ret=$(($ret + $?)) + + if [ $ret -ne 4 ]; then + res=$(($res + 1)) + fi + + if [ $res -eq 0 ]; then + tst_res TPASS "enhanced swap /dev/memcg/memory.avail_buffers \ + interface invalid setting test pass." + else + tst_res TFAIL "enhanced swap /dev/memcg/memory.avail_buffers \ + interface invalid setting test failed!" + fi +} + +do_clean() +{ + +} + +do_setup +do_test +do_clean +tst_exit \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap02.sh b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap02.sh new file mode 100644 index 0000000..c17df61 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap02.sh @@ -0,0 +1,83 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap02.sh +# +# Description: enhanced swap /dev/memcg/memory.zswapd_single_memcg_param and +# /dev/memcg/100/memory.zswapd_single_memcg_param interface test +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +source tst_oh.sh + +do_setup() +{ + +} + +do_test() +{ + local ret=0 + local res=0 + local memcg_100_zsmp=/dev/memcg/100/memory.zswapd_single_memcg_param + local memcg_zsmp=/dev/memcg/memory.zswapd_single_memcg_param + + tst_res TINFO "Start enhanced swap memory.zswapd_single_memcg_param \ + interface test" + echo 0 -100 0 0 > $memcg_100_zsmp + ret=$(($ret + $?)) + echo 0 0 -100 0 > $memcg_100_zsmp + ret=$(($ret + $?)) + echo 0 -100 -100 0 > $memcg_100_zsmp + ret=$(($ret + $?)) + echo 0 101 101 0 > $memcg_100_zsmp + ret=$(($ret + $?)) + + echo 0 -100 0 0 > $memcg_zsmp + ret=$(($ret + $?)) + echo 0 0 -100 0 > $memcg_zsmp + ret=$(($ret + $?)) + echo 0 -100 -100 0 > $memcg_zsmp + ret=$(($ret + $?)) + echo 0 101 101 0 > $memcg_zsmp + ret=$(($ret + $?)) + + if [ $ret -ne 8 ]; then + res=$(($res + 1)) + fi + + if [ $res -eq 0 ]; then + tst_res TPASS "enhanced swap memory.zswapd_single_memcg_param \ + interface test pass." + else + tst_res TFAIL "enhanced swap memory.zswapd_single_memcg_param \ + interface test failed!" + fi +} + +do_clean() +{ + +} + +do_setup +do_test +do_clean +tst_exit \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap03.sh b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap03.sh new file mode 100644 index 0000000..3ce23b6 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap03.sh @@ -0,0 +1,65 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap03.sh +# +# Description: enhanced swap /dev/memcg/memory.zram_wm_ratio interface test +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +source tst_oh.sh + +do_setup() +{ + +} + +do_test() +{ + local ret=0 + local res=0 + local zram_wm_ratio=/dev/memcg/memory.zram_wm_ratio + + tst_res TINFO "Start enhanced swap $zram_wm_ratio interface test" + echo -1 > $zram_wm_ratio + ret=$(($ret + $?)) + echo 101 > $zram_wm_ratio + ret=$(($ret + $?)) + + if [ $ret -ne 2 ]; then + res=$(($res + 1)) + fi + + if [ $res -eq 0 ]; then + tst_res TPASS "enhanced swap $zram_wm_ratio interface test pass." + else + tst_res TFAIL "enhanced swap $zram_wm_ratio interface test failed!" + fi +} + +do_clean() +{ + +} + +do_setup +do_test +do_clean +tst_exit \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap04.sh b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap04.sh new file mode 100644 index 0000000..73854a4 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap04.sh @@ -0,0 +1,86 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap04.sh +# +# Description: anon memory to zram test +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +source tst_oh.sh + +do_setup() +{ + +} + +do_test() +{ + local ret=0 + local memcg_100_stat=/dev/memcg/100/memory.stat + local memcg_stat=/dev/memcg/memory.stat + local avail_buffers=/dev/memcg/memory.avail_buffers + local zswapd_s=/dev/memcg/memory.zswapd_pressure_show + + tst_res TINFO "Start anon to zram test" + + # get init zram values + zram_100_b=`cat ${memcg_100_stat} | grep 'zram' | awk -F ' ' '{print$2}'` + zram_b=`cat ${memcg_stat} | grep 'zram' | awk -F ' ' '{print$2}'` + + # get buffer_size + buffer_size=`cat $zswapd_s | grep 'buffer_size' | awk -F ':' '{print$2}'` + + # set avail_buffers > buffer_size to swap out to zram + echo 0 $(( $buffer_size + 50 )) $(( $buffer_size + 100 )) 0 > $avail_buffers + + sleep 3 + + # get new zram values after swap-out to zram + zram_100_a=`cat ${memcg_100_stat} | grep 'zram' | awk -F ' ' '{print$2}'` + zram_a=`cat ${memcg_stat} | grep 'zram' | awk -F ' ' '{print$2}'` + + tst_res TINFO "root zram: $zram_b --> $zram_a" + tst_res TINFO "100 zram: $zram_100_b --> $zram_100_a" + + # zram change + if [[ $zram_b -ne $zram_a || $zram_100_b -ne $zram_100_a ]]; then + tst_res TINFO "anon memory compressed to zram, Eswap hold." + else + tst_res TINFO "no anon memory compressed to zram!" + ret=$(( $ret + 1 )) + fi + + if [ $ret -eq 0 ];then + tst_res TPASS "anon memory to zram test pass." + else + tst_res TFAIL "anon memory to zram test failed!" + fi +} + +do_clean() +{ + +} + +do_setup +do_test +do_clean +tst_exit \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap05.sh b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap05.sh new file mode 100644 index 0000000..c21199e --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t/testcases/bin/enhancedswap05.sh @@ -0,0 +1,88 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap05.sh +# +# Description: zram to Eswap test +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +source tst_oh.sh + +do_setup() +{ + +} + +do_test() +{ + local ret=0 + local memcg_100_stat=/dev/memcg/100/memory.stat + local memcg_stat=/dev/memcg/memory.stat + local avail_buffers=/dev/memcg/memory.avail_buffers + local zswapd_s=/dev/memcg/memory.zswapd_pressure_show + + tst_res TINFO "Start zram to Eswap test" + # get init Eswap values + eswap_100_b=`cat ${memcg_100_stat} | grep 'Eswap' | awk -F ' ' '{print$2}'` + eswap_b=`cat ${memcg_stat} | grep 'Eswap' | awk -F ' ' '{print$2}'` + + # turn on enhanced swap out + echo 1 > /dev/memcg/memory.zram_wm_ratio + + # get buffer_size + buffer_size=`cat $zswapd_s | grep 'buffer_size' | awk -F ':' '{print$2}'` + + # set avail_buffers > buffer_size to swap out to Eswap + echo 0 $(( $buffer_size + 50 )) $(( $buffer_size + 100 )) 0 > $avail_buffers + + sleep 3 + + # get new Eswap values after swap-out to Eswap + eswap_100_a=`cat ${memcg_100_stat} | grep 'Eswap' | awk -F ' ' '{print$2}'` + eswap_a=`cat ${memcg_stat} | grep 'Eswap' | awk -F ' ' '{print$2}'` + + tst_res TINFO "root Eswap: $eswap_b --> $eswap_a" + tst_res TINFO "100 Eswap: $eswap_100_b --> $eswap_100_a" + + # Eswap change + if [[ $eswap_b -ne $eswap_a || $eswap_100_b -ne $eswap_100_a ]]; then + tst_res TINFO "zram to Eswap." + else + tst_res TINFO "no zram to Eswap." + ret=$(( $ret + 1 )) + fi + + if [ $ret -eq 0 ];then + tst_res TPASS "zram to Eswap test pass." + else + tst_res TFAIL "zram to Eswap test failed!" + fi +} + +do_clean() +{ + +} + +do_setup +do_test +do_clean +tst_exit \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t_init.sh b/test/moduletest/runtest/bin/enhancedswap_t_init.sh new file mode 100644 index 0000000..8899cf4 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t_init.sh @@ -0,0 +1,78 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap_t_init.sh +# +# Description: enhancedswap_t testsuite init script +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ + +pre_condition() +{ + TCBIN=$LTPROOT/testcases/bin + export PATH=$TCBIN:$PATH + export TMPDIR=/data/local/tmp + export LD_LIBRARY_PATH=$LTPROOT/lib + export BUSYBOX=/system/bin/busybox-armv7l +} + +hp_init() +{ + dd if=/dev/random of=/data/hpdisk bs=4096 count=131072 + losetup /dev/block/loop6 /data/hpdisk + hyperhold_device=`cat /proc/sys/kernel/hyperhold/device` + echo /dev/block/loop6 > /proc/sys/kernel/hyperhold/device +} + +hp_enable() +{ + hyperhold_enable=`cat /proc/sys/kernel/hyperhold/enable` + echo enable > /proc/sys/kernel/hyperhold/enable +} + +zram_init() +{ + zram0_group=`cat /sys/block/zram0/group` + zram0_disksize=`cat /sys/block/zram0/disksize` + echo readwrite > /sys/block/zram0/group + echo 512M > /sys/block/zram0/disksize +} + +zram_enable() +{ + mkswap /dev/block/zram0 + swapon /dev/block/zram0 + aa start -b com.ohos.settings -a com.ohos.settings.MainAbility + aa start -b ohos.samples.airquality -a ohos.samples.airquality.default + aa start -b ohos.samples.ecg -a ohos.samples.ecg.default + aa start -b ohos.samples.flashlight -a ohos.samples.flashlight.default + aa start -b ohos.samples.clock -a ohos.samples.clock.default + +} + +echo "***************************ESWAP INIT START***************************" +free -m +pre_condition +hp_init +hp_enable +zram_init +zram_enable +echo "***************************ESWAP INIT END***************************" \ No newline at end of file diff --git a/test/moduletest/runtest/bin/enhancedswap_t_uninit.sh b/test/moduletest/runtest/bin/enhancedswap_t_uninit.sh new file mode 100644 index 0000000..fec54b6 --- /dev/null +++ b/test/moduletest/runtest/bin/enhancedswap_t_uninit.sh @@ -0,0 +1,43 @@ +#!/bin/sh +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap_t_uninit.sh +# +# Description: enhancedswap_t testsuite uninit script +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ + +uninit_platform() +{ + losetup -d /dev/block/loop6 + echo ${hyperhold_device} > /proc/sys/kernel/hyperhold/device + echo ${hyperhold_enable} > /proc/sys/kernel/hyperhold/enable + echo ${zram0_group} > /sys/block/zram0/group + echo ${zram0_disksize} > /sys/block/zram0/disksize + rm -rf /data/hpdisk + swapoff /dev/block/zram0 + echo 1 > /sys/block/zram0/reset +} + +echo "***************************ESWAP UNINIT START***************************" +free -m +uninit_platform +echo "***************************ESWAP UNINIT END***************************" \ No newline at end of file diff --git a/test/moduletest/runtest/conf/OH_RK3568_config b/test/moduletest/runtest/conf/OH_RK3568_config index 088861d..16e3c86 100644 --- a/test/moduletest/runtest/conf/OH_RK3568_config +++ b/test/moduletest/runtest/conf/OH_RK3568_config @@ -24,3 +24,4 @@ # ################################################################################ cpusetdecouple_cpuhotplug_t +enhancedswap_t diff --git a/test/moduletest/runtest/tests/enhancedswap_t b/test/moduletest/runtest/tests/enhancedswap_t new file mode 100644 index 0000000..5a9f327 --- /dev/null +++ b/test/moduletest/runtest/tests/enhancedswap_t @@ -0,0 +1,30 @@ +################################################################################ +# +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +# File: enhancedswap_t +# +# Description: enhanced swap testcase list +# +# Authors: Ma Feng - mafeng.ma@huawei.com +# +# History: Mar 24 2022 - init scripts +# +################################################################################ +enhancedswap01 enhancedswap01.sh +enhancedswap02 enhancedswap02.sh +enhancedswap03 enhancedswap03.sh +enhancedswap04 enhancedswap04.sh +enhancedswap05 enhancedswap05.sh -- Gitee