xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/livepatch/test-shadow-vars.sh (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker#!/bin/bash
2*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
3*053f45beSAndroid Build Coastguard Worker# Copyright (C) 2018 Joe Lawrence <[email protected]>
4*053f45beSAndroid Build Coastguard Worker
5*053f45beSAndroid Build Coastguard Worker. $(dirname $0)/functions.sh
6*053f45beSAndroid Build Coastguard Worker
7*053f45beSAndroid Build Coastguard WorkerMOD_TEST=test_klp_shadow_vars
8*053f45beSAndroid Build Coastguard Worker
9*053f45beSAndroid Build Coastguard Workersetup_config
10*053f45beSAndroid Build Coastguard Worker
11*053f45beSAndroid Build Coastguard Worker
12*053f45beSAndroid Build Coastguard Worker# - load a module that exercises the shadow variable API
13*053f45beSAndroid Build Coastguard Worker
14*053f45beSAndroid Build Coastguard Workerstart_test "basic shadow variable API"
15*053f45beSAndroid Build Coastguard Worker
16*053f45beSAndroid Build Coastguard Workerload_mod $MOD_TEST
17*053f45beSAndroid Build Coastguard Workerunload_mod $MOD_TEST
18*053f45beSAndroid Build Coastguard Worker
19*053f45beSAndroid Build Coastguard Workercheck_result "% modprobe $MOD_TEST
20*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
21*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
22*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR3 -> PTR2
23*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
24*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR6 -> PTR5
25*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
26*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR8 -> PTR7
27*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
28*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR11 -> PTR10
29*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
30*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR13 -> PTR12
31*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
32*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_ctor: PTR16 -> PTR15
33*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
34*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
35*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR3 -> PTR2 result
36*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
37*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR6 -> PTR5 result
38*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
39*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR8 -> PTR7 result
40*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
41*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR11 -> PTR10 result
42*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
43*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR13 -> PTR12 result
44*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
45*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR16 -> PTR15 result
46*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
47*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR3 -> PTR2 result
48*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
49*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR8 -> PTR7 result
50*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
51*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR13 -> PTR12 result
52*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_dtor(obj=PTR1, shadow_data=PTR3)
53*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
54*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
55*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
56*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_dtor(obj=PTR9, shadow_data=PTR8)
57*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
58*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
59*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
60*053f45beSAndroid Build Coastguard Worker$MOD_TEST: shadow_dtor(obj=PTR14, shadow_data=PTR13)
61*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
62*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
63*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
64*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
65*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR6 -> PTR5 result
66*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
67*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR11 -> PTR10 result
68*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
69*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected PTR16 -> PTR15 result
70*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_free_all(id=0x1235, dtor=PTR0)
71*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
72*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
73*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
74*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
75*053f45beSAndroid Build Coastguard Worker$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
76*053f45beSAndroid Build Coastguard Worker$MOD_TEST:   got expected NULL result
77*053f45beSAndroid Build Coastguard Worker% rmmod $MOD_TEST"
78*053f45beSAndroid Build Coastguard Worker
79*053f45beSAndroid Build Coastguard Workerexit 0
80