11#! /bin/sh
2-
2+
33# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4- # SPDX-License-Identifier: BSD-3-Clause
4+ # SPDX-License-Identifier: BSD-3-Clause
55# Locate and source init_env
66SCRIPT_DIR=" $( cd " $( dirname " $0 " ) " && pwd) "
77INIT_ENV=" "
@@ -13,15 +13,15 @@ while [ "$SEARCH" != "/" ]; do
1313 fi
1414 SEARCH=$( dirname " $SEARCH " )
1515done
16-
16+
1717if [ -z " $INIT_ENV " ]; then
1818 echo " [ERROR] Could not find init_env (starting at $SCRIPT_DIR )" >&2
1919 exit 1
2020fi
21-
21+
2222# shellcheck disable=SC1090
2323. " $INIT_ENV "
24-
24+
2525# shellcheck disable=SC1090,SC1091
2626. " $TOOLS /functestlib.sh"
2727
@@ -36,8 +36,8 @@ log_info "==== Test Initialization ===="
3636
3737log_info " Checking if required tools are available"
3838
39- if ! check_dependencies zcat grep dmesg ; then
40- log_skip " $TESTNAME SKIP - missing one or more of zcat grep dmesg utils "
39+ if ! check_dependencies grep; then
40+ log_skip " $TESTNAME SKIP - missing required grep utility "
4141 echo " $TESTNAME SKIP" > " $res_file "
4242 exit 0
4343fi
@@ -48,22 +48,37 @@ if ! check_kernel_config "CONFIG_QCOM_SCM"; then
4848 echo " $TESTNAME SKIP" > " $res_file "
4949 exit 0
5050fi
51-
52- log_info " Scanning dmesg logs for qcom_scm initialization"
5351
54- if dmesg | grep -q ' qcom_scm' ; then
55- if ! scan_dmesg_errors . " " " " ; then
56- log_pass " $TESTNAME : Test Passed (qcom_scm present and no probe failures)"
57- echo " $TESTNAME PASS" > " $res_file "
58- else
59- log_fail " FAIL: 'probe failure' detected in dmesg."
60- echo " $TESTNAME FAIL" > " $res_file "
61- fi
52+ log_info " Checking qcom_scm presence using sysfs/current-boot kernel log"
53+
54+ if [ -d /sys/module/qcom_scm ]; then
55+ log_pass " qcom_scm driver is present in sysfs."
56+ elif get_kernel_log 2> /dev/null | grep -qi ' \bqcom_scm\b' ; then
57+ log_pass " qcom_scm present in current-boot kernel log."
6258else
63- log_fail " FAIL: 'qcom_scm' not found in dmesg."
59+ log_fail " FAIL: qcom_scm not found in sysfs or current-boot kernel log."
60+ echo " $TESTNAME FAIL" > " $res_file "
61+ exit 0
62+ fi
63+
64+ scm_log=" ./qcom_scm_kernel.log"
65+ scm_err=" ./qcom_scm_errors.log"
66+ err_patterns=' probe failed|fail(ed)?|error|timed out|not found|invalid|corrupt|abort|panic|oops|unhandled'
67+
68+ log_info " Scanning current-boot kernel log for qcom_scm-related errors"
69+ get_kernel_log > " $scm_log " 2> /dev/null || true
70+ grep -iE " qcom_scm.*($err_patterns )" " $scm_log " > " $scm_err " || true
71+
72+ if [ -s " $scm_err " ]; then
73+ while IFS= read -r line; do
74+ [ -n " $line " ] || continue
75+ log_info " [kernel] $line "
76+ done < " $scm_err "
77+ log_fail " FAIL: qcom_scm-related errors detected in current-boot kernel log."
6478 echo " $TESTNAME FAIL" > " $res_file "
79+ else
80+ log_pass " $TESTNAME : Test Passed (qcom_scm present and no qcom_scm-related kernel errors)"
81+ echo " $TESTNAME PASS" > " $res_file "
6582fi
6683
6784log_info " -------------------Completed $TESTNAME Testcase----------------------------"
68-
69-
0 commit comments