brintos

brintos / linux-shallow public Read only

0
0
Text · 5.5 KiB · 05a14f5 Raw
135 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03# Copyright (C) 2022 Song Liu <song@kernel.org>4 5. $(dirname $0)/functions.sh6 7MOD_LIVEPATCH=test_klp_livepatch8 9setup_config10 11# - load a livepatch and verifies the sysfs entries work as expected12 13start_test "sysfs test"14 15load_lp $MOD_LIVEPATCH16 17check_sysfs_rights "$MOD_LIVEPATCH" "" "drwxr-xr-x"18check_sysfs_rights "$MOD_LIVEPATCH" "enabled" "-rw-r--r--"19check_sysfs_value  "$MOD_LIVEPATCH" "enabled" "1"20check_sysfs_rights "$MOD_LIVEPATCH" "force" "--w-------"21check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"22check_sysfs_rights "$MOD_LIVEPATCH" "transition" "-r--r--r--"23check_sysfs_value  "$MOD_LIVEPATCH" "transition" "0"24check_sysfs_rights "$MOD_LIVEPATCH" "vmlinux/patched" "-r--r--r--"25check_sysfs_value  "$MOD_LIVEPATCH" "vmlinux/patched" "1"26 27disable_lp $MOD_LIVEPATCH28 29unload_lp $MOD_LIVEPATCH30 31check_result "% insmod test_modules/$MOD_LIVEPATCH.ko32livepatch: enabling patch '$MOD_LIVEPATCH'33livepatch: '$MOD_LIVEPATCH': initializing patching transition34livepatch: '$MOD_LIVEPATCH': starting patching transition35livepatch: '$MOD_LIVEPATCH': completing patching transition36livepatch: '$MOD_LIVEPATCH': patching complete37% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled38livepatch: '$MOD_LIVEPATCH': initializing unpatching transition39livepatch: '$MOD_LIVEPATCH': starting unpatching transition40livepatch: '$MOD_LIVEPATCH': completing unpatching transition41livepatch: '$MOD_LIVEPATCH': unpatching complete42% rmmod $MOD_LIVEPATCH"43 44start_test "sysfs test object/patched"45 46MOD_LIVEPATCH=test_klp_callbacks_demo47MOD_TARGET=test_klp_callbacks_mod48load_lp $MOD_LIVEPATCH49 50# check the "patch" file changes as target module loads/unloads51check_sysfs_value  "$MOD_LIVEPATCH" "$MOD_TARGET/patched" "0"52load_mod $MOD_TARGET53check_sysfs_value  "$MOD_LIVEPATCH" "$MOD_TARGET/patched" "1"54unload_mod $MOD_TARGET55check_sysfs_value  "$MOD_LIVEPATCH" "$MOD_TARGET/patched" "0"56 57disable_lp $MOD_LIVEPATCH58unload_lp $MOD_LIVEPATCH59 60check_result "% insmod test_modules/test_klp_callbacks_demo.ko61livepatch: enabling patch 'test_klp_callbacks_demo'62livepatch: 'test_klp_callbacks_demo': initializing patching transition63test_klp_callbacks_demo: pre_patch_callback: vmlinux64livepatch: 'test_klp_callbacks_demo': starting patching transition65livepatch: 'test_klp_callbacks_demo': completing patching transition66test_klp_callbacks_demo: post_patch_callback: vmlinux67livepatch: 'test_klp_callbacks_demo': patching complete68% insmod test_modules/test_klp_callbacks_mod.ko69livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'70test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init71test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init72test_klp_callbacks_mod: test_klp_callbacks_mod_init73% rmmod test_klp_callbacks_mod74test_klp_callbacks_mod: test_klp_callbacks_mod_exit75test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away76livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'77test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away78% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled79livepatch: 'test_klp_callbacks_demo': initializing unpatching transition80test_klp_callbacks_demo: pre_unpatch_callback: vmlinux81livepatch: 'test_klp_callbacks_demo': starting unpatching transition82livepatch: 'test_klp_callbacks_demo': completing unpatching transition83test_klp_callbacks_demo: post_unpatch_callback: vmlinux84livepatch: 'test_klp_callbacks_demo': unpatching complete85% rmmod test_klp_callbacks_demo"86 87start_test "sysfs test replace enabled"88 89MOD_LIVEPATCH=test_klp_atomic_replace90load_lp $MOD_LIVEPATCH replace=191 92check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"93check_sysfs_value  "$MOD_LIVEPATCH" "replace" "1"94 95disable_lp $MOD_LIVEPATCH96unload_lp $MOD_LIVEPATCH97 98check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=199livepatch: enabling patch '$MOD_LIVEPATCH'100livepatch: '$MOD_LIVEPATCH': initializing patching transition101livepatch: '$MOD_LIVEPATCH': starting patching transition102livepatch: '$MOD_LIVEPATCH': completing patching transition103livepatch: '$MOD_LIVEPATCH': patching complete104% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled105livepatch: '$MOD_LIVEPATCH': initializing unpatching transition106livepatch: '$MOD_LIVEPATCH': starting unpatching transition107livepatch: '$MOD_LIVEPATCH': completing unpatching transition108livepatch: '$MOD_LIVEPATCH': unpatching complete109% rmmod $MOD_LIVEPATCH"110 111start_test "sysfs test replace disabled"112 113load_lp $MOD_LIVEPATCH replace=0114 115check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"116check_sysfs_value  "$MOD_LIVEPATCH" "replace" "0"117 118disable_lp $MOD_LIVEPATCH119unload_lp $MOD_LIVEPATCH120 121check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=0122livepatch: enabling patch '$MOD_LIVEPATCH'123livepatch: '$MOD_LIVEPATCH': initializing patching transition124livepatch: '$MOD_LIVEPATCH': starting patching transition125livepatch: '$MOD_LIVEPATCH': completing patching transition126livepatch: '$MOD_LIVEPATCH': patching complete127% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled128livepatch: '$MOD_LIVEPATCH': initializing unpatching transition129livepatch: '$MOD_LIVEPATCH': starting unpatching transition130livepatch: '$MOD_LIVEPATCH': completing unpatching transition131livepatch: '$MOD_LIVEPATCH': unpatching complete132% rmmod $MOD_LIVEPATCH"133 134exit 0135