Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Runner/plans/qcom-next-ci-premerge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ run:
- $PWD/utils/send-to-lava.sh $PWD/suites/Kernel/FunctionalArea/baseport/remoteproc/remoteproc.res || true
- $PWD/suites/Kernel/FunctionalArea/baseport/RMNET/run.sh || true
- $PWD/utils/send-to-lava.sh $PWD/suites/Kernel/FunctionalArea/baseport/RMNET/RMNET.res || true
- $PWD/suites/Kernel/FunctionalArea/baseport/IPA/run.sh || true
- $PWD/utils/send-to-lava.sh $PWD/suites/Kernel/FunctionalArea/baseport/IPA/IPA.res || true
- $PWD/suites/Kernel/FunctionalArea/baseport/Probe_Failure_Check/run.sh || true
- $PWD/utils/send-to-lava.sh $PWD/suites/Kernel/FunctionalArea/baseport/Probe_Failure_Check/Probe_Failure_Check.res || true
- $PWD/suites/Kernel/FunctionalArea/baseport/rngtest/run.sh || true
- $PWD/utils/send-to-lava.sh $PWD/suites/Kernel/FunctionalArea/baseport/rngtest/rngtest.res || true
- $PWD/suites/Kernel/FunctionalArea/baseport/smmu/run.sh || true
Expand Down
Empty file modified Runner/suites/Connectivity/Bluetooth/run.sh
100644 → 100755
Empty file.
Empty file modified Runner/suites/Connectivity/Ethernet/run.sh
100644 → 100755
Empty file.
32 changes: 18 additions & 14 deletions Runner/suites/Kernel/FunctionalArea/baseport/IPA/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,48 @@ if [ -z "$INIT_ENV" ]; then
exit 1
fi

# Only source if not already loaded (idempotent)
if [ -z "$__INIT_ENV_LOADED" ]; then
# shellcheck disable=SC1090
. "$INIT_ENV"
fi
# Always source functestlib.sh, using $TOOLS exported by init_env
# shellcheck disable=SC1090,SC1091
. "$TOOLS/functestlib.sh"

TESTNAME="IPA"
test_path=$(find_test_case_by_name "$TESTNAME")
cd "$test_path" || exit 1
# shellcheck disable=SC2034
res_file="./$TESTNAME.res"

log_info "-----------------------------------------------------------------------------------------"
log_info "-------------------Starting $TESTNAME Testcase----------------------------"
log_info "=== Test Initialization ==="

PATH=$(find / -name "ipa.ko" 2>/dev/null)
IPA_MODULE_PATH=$(find_kernel_module "ipa")

# Check if the file was found
if [ -z "$PATH" ]; then
log_error "ipa.ko file not found."
exit 1
if [ -z "$IPA_MODULE_PATH" ]; then
log_error "ipa.ko module not found in filesystem."
echo "$TESTNAME FAIL" > "$res_file"
exit 1
fi

# Insert the module
TEST=$(/sbin/insmod "$PATH")
log_info "output of insmod $TEST"
log_info "Found ipa.ko at: $IPA_MODULE_PATH"

if ! load_kernel_module "$IPA_MODULE_PATH"; then
echo "$TESTNAME FAIL" > "$res_file"
exit 1
fi

if /sbin/lsmod | /bin/grep "ipa"; then
log_info "$(/sbin/lsmod | /bin/grep "ipa")"
if is_module_loaded "ipa"; then
log_info "ipa module is loaded"
log_pass "$TESTNAME : Test Passed"
echo "$TESTNAME PASS" > "$res_file"
else
log_error "rmnet module not running"
log_error "ipa module not listed in lsmod"
log_fail "$TESTNAME : Test Failed"
echo "$TESTNAME FAIL" > "$res_file"
fi

log_info "=== Cleanup ==="
unload_kernel_module "ipa" true

log_info "-------------------Completed $TESTNAME Testcase----------------------------"
Empty file.
30 changes: 18 additions & 12 deletions Runner/suites/Kernel/FunctionalArea/baseport/RMNET/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,42 +20,48 @@ if [ -z "$INIT_ENV" ]; then
exit 1
fi

# Only source if not already loaded (idempotent)
if [ -z "$__INIT_ENV_LOADED" ]; then
# shellcheck disable=SC1090
. "$INIT_ENV"
fi
# Always source functestlib.sh, using $TOOLS exported by init_env
# shellcheck disable=SC1090,SC1091
. "$TOOLS/functestlib.sh"

TESTNAME="RMNET"
test_path=$(find_test_case_by_name "$TESTNAME")
cd "$test_path" || exit 1
# shellcheck disable=SC2034
res_file="./$TESTNAME.res"

log_info "-----------------------------------------------------------------------------------------"
log_info "-------------------Starting $TESTNAME Testcase----------------------------"
log_info "=== Test Initialization ==="

PATH=$(find / -name "rmnet.ko" 2>/dev/null)
RMNET_MODULE_PATH=$(find_kernel_module "rmnet")

if [ -z "$PATH" ]; then
log_error "rmnet.ko file not found."
exit 1
if [ -z "$RMNET_MODULE_PATH" ]; then
log_error "rmnet.ko module not found in filesystem."
echo "$TESTNAME FAIL" > "$res_file"
exit 1
fi

TEST=$(/sbin/insmod "$PATH")
log_info "output of insmod $TEST"
log_info "Found rmnet.ko at: $RMNET_MODULE_PATH"

if ! load_kernel_module "$RMNET_MODULE_PATH"; then
echo "$TESTNAME FAIL" > "$res_file"
exit 1
fi

if /sbin/lsmod | /bin/grep "rmnet"; then
log_info "$(/sbin/lsmod | /bin/grep "rmnet")"
if is_module_loaded "rmnet"; then
log_info "rmnet module is loaded"
log_pass "$TESTNAME : Test Passed"
echo "$TESTNAME PASS" > "$res_file"
else
log_error "rmnet module not running"
log_error "rmnet module not listed in lsmod"
log_fail "$TESTNAME : Test Failed"
echo "$TESTNAME FAIL" > "$res_file"
fi

log_info "=== Cleanup ==="
unload_kernel_module "rmnet" true

log_info "-------------------Completed $TESTNAME Testcase----------------------------"
Empty file modified Runner/suites/Kernel/FunctionalArea/baseport/shmbridge/run.sh
100644 → 100755
Empty file.
Empty file modified Runner/suites/Multimedia/Graphics/KMSCube/run.sh
100644 → 100755
Empty file.
Empty file modified Runner/suites/Multimedia/Graphics/weston-simple-egl/run.sh
100644 → 100755
Empty file.
99 changes: 99 additions & 0 deletions Runner/utils/functestlib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,105 @@ get_kernel_log() {
fi
}

# Locate a kernel module (.ko) file by name
# Tries to find it under current kernel version first, then all module trees
find_kernel_module() {
module_name="$1"
kver=$(uname -r)

# Attempt to find module under the currently running kernel
module_path=$(find "/lib/modules/$kver" -name "${module_name}.ko" 2>/dev/null | head -n 1)

# If not found, search all available module directories
if [ -z "$module_path" ]; then
log_warn "Module not found under /lib/modules/$kver, falling back to full search in /lib/modules/"
module_path=$(find /lib/modules/ -name "${module_name}.ko" 2>/dev/null | head -n 1)

# Warn if found outside current kernel version
if [ -n "$module_path" ]; then
found_version=$(echo "$module_path" | cut -d'/' -f4)
if [ "$found_version" != "$kver" ]; then
log_warn "Found ${module_name}.ko under $found_version, not under current kernel ($kver)"
fi
fi
fi
echo "$module_path"
}

# Check if a kernel module is currently loaded
is_module_loaded() {
module_name="$1"
/sbin/lsmod | awk '{print $1}' | grep -q "^${module_name}$"
}

# Insert a kernel module with optional parameters
load_kernel_module() {
module_path="$1"
shift
params="$*"

module_name=$(basename "$module_path" .ko)

if is_module_loaded "$module_name"; then
log_info "Module $module_name is already loaded"
return 0
fi

if [ ! -f "$module_path" ]; then
log_error "Module file not found: $module_path"
return 1
fi

log_info "Loading module: $module_path $params"
if /sbin/insmod "$module_path" "$params" 2>insmod_err.log; then
log_info "Module $module_name loaded successfully"
return 0
else
log_error "insmod failed: $(cat insmod_err.log)"
return 1
fi
}

# Remove a kernel module by name with optional forced removal
unload_kernel_module() {
module_name="$1"
force="$2"

if ! is_module_loaded "$module_name"; then
log_info "Module $module_name is not loaded, skipping unload"
return 0
fi

log_info "Attempting to remove module: $module_name"
if /sbin/rmmod "$module_name" 2>rmmod_err.log; then
log_info "Module $module_name removed via rmmod"
return 0
fi

log_warn "rmmod failed: $(cat rmmod_err.log)"
log_info "Trying modprobe -r as fallback"
if /sbin/modprobe -r "$module_name" 2>modprobe_err.log; then
log_info "Module $module_name removed via modprobe"
return 0
fi

log_warn "modprobe -r failed: $(cat modprobe_err.log)"

if [ "$force" = "true" ]; then
log_warn "Trying forced rmmod: $module_name"
if /sbin/rmmod -f "$module_name" 2>>rmmod_err.log; then
log_info "Module $module_name force removed"
return 0
else
log_error "Forced rmmod failed: $(cat rmmod_err.log)"
return 1
fi
fi

log_error "Unable to unload module: $module_name"
return 1
}

# --- Dependency check ---
check_dependencies() {
missing=0
Expand Down
Loading