From fe281cbfa3a92ceb12ca3a3a3faeccffdf2db743 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Mon, 2 May 2022 15:49:06 -0700 Subject: [PATCH 1/5] check-suspend-resume: fix rtcwake error handling bug To help with #312, commit 2e24024c5fea ("test-case: add set -e to 7 function test") blindly added "set -e" without reviewing the code of any test and without making sure it's actually compatible with set -e. In this test this meant missing the rtcwake exit code. Signed-off-by: Marc Herbert --- test-case/check-suspend-resume.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test-case/check-suspend-resume.sh b/test-case/check-suspend-resume.sh index f0c1409e..23c206c9 100755 --- a/test-case/check-suspend-resume.sh +++ b/test-case/check-suspend-resume.sh @@ -82,8 +82,8 @@ do setup_kernel_check_point sleep_count=$(cat /sys/power/wakeup_count) dlogc "Run the command: rtcwake -m mem -s ${sleep_lst[$i]}" - sudo rtcwake -m mem -s ${sleep_lst[$i]} - [[ $? -ne 0 ]] && die "rtcwake return value error" + sudo rtcwake -m mem -s "${sleep_lst[$i]}" || + die "rtcwake returned $?" dlogc "sleep for ${wait_lst[$i]}" sleep ${wait_lst[$i]} dlogi "Check for the kernel log status" From 776fcc5aab0080e1ee16b5c17193e156f2874f72 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Mon, 2 May 2022 15:45:59 -0700 Subject: [PATCH 2/5] check-suspend-resume: fix [ -n $(grep ... ) ] warning Replace with a simpler and safer grep -q. No functional change. Signed-off-by: Marc Herbert --- test-case/check-suspend-resume.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test-case/check-suspend-resume.sh b/test-case/check-suspend-resume.sh index 23c206c9..948fef34 100755 --- a/test-case/check-suspend-resume.sh +++ b/test-case/check-suspend-resume.sh @@ -46,7 +46,10 @@ type=${OPT_VAL['T']} # switch type if [ "$type" ]; then # check for type value effect - [[ ! "$(cat /sys/power/mem_sleep|grep $type)" ]] && dloge "useless type option" && exit 2 + grep -q "$type" /sys/power/mem_sleep || { + grep -H '^' /sys/power/mem_sleep + skip_test "Unsupported sleep type argument: $type" + } dlogc "sudo bash -c 'echo $type > /sys/power/mem_sleep'" sudo bash -c "'echo $type > /sys/power/mem_sleep'" fi From 3d15989cf6e5b2e021d515410d7d5f4da3c83e28 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Mon, 2 May 2022 17:31:16 -0700 Subject: [PATCH 3/5] check-suspend-resume: make /sys/power/mem_sleep compatible with plain sudo Remove the dependency on hijack.sh#sudo() and simplify the multiple layers of quoting. Fixes the following error when running with plain sudo: bash: echo deep > /sys/power/mem_sleep: No such file or directory Signed-off-by: Marc Herbert --- test-case/check-suspend-resume.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test-case/check-suspend-resume.sh b/test-case/check-suspend-resume.sh index 948fef34..f55580fe 100755 --- a/test-case/check-suspend-resume.sh +++ b/test-case/check-suspend-resume.sh @@ -50,8 +50,8 @@ if [ "$type" ]; then grep -H '^' /sys/power/mem_sleep skip_test "Unsupported sleep type argument: $type" } - dlogc "sudo bash -c 'echo $type > /sys/power/mem_sleep'" - sudo bash -c "'echo $type > /sys/power/mem_sleep'" + dlogc "echo $type > /sys/power/mem_sleep" + echo "$type" | >/dev/null sudo tee -a /sys/power/mem_sleep fi dlogi "Current suspend/resume type mode: $(cat /sys/power/mem_sleep)" From 915bf1c73499e57aec21d90b63be5591efd08a34 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Mon, 2 May 2022 15:54:02 -0700 Subject: [PATCH 4/5] check-suspend-resume: FAIL instead of SKIP on invalid sleep -T $type We should never pass an invalid argument. Signed-off-by: Marc Herbert --- test-case/check-suspend-resume.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-case/check-suspend-resume.sh b/test-case/check-suspend-resume.sh index f55580fe..4d144d90 100755 --- a/test-case/check-suspend-resume.sh +++ b/test-case/check-suspend-resume.sh @@ -48,7 +48,7 @@ if [ "$type" ]; then # check for type value effect grep -q "$type" /sys/power/mem_sleep || { grep -H '^' /sys/power/mem_sleep - skip_test "Unsupported sleep type argument: $type" + die "Unsupported sleep type argument: $type" } dlogc "echo $type > /sys/power/mem_sleep" echo "$type" | >/dev/null sudo tee -a /sys/power/mem_sleep From 402e1114408f166ea005b724ddb5129715bb841f Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Mon, 2 May 2022 15:35:58 -0700 Subject: [PATCH 5/5] check-suspend-resume: fix minor shellcheck warnings shellcheck source and BASH_SOURCE quoting Signed-off-by: Marc Herbert --- test-case/check-suspend-resume.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test-case/check-suspend-resume.sh b/test-case/check-suspend-resume.sh index 4d144d90..edce695f 100755 --- a/test-case/check-suspend-resume.sh +++ b/test-case/check-suspend-resume.sh @@ -19,7 +19,8 @@ set -e ## check kernel log and find no errors ## -source $(dirname ${BASH_SOURCE[0]})/../case-lib/lib.sh +# shellcheck source=case-lib/lib.sh +source "$(dirname "${BASH_SOURCE[0]}")"/../case-lib/lib.sh random_min=3 # wait time should >= 3 for other device wakeup from sleep random_max=20