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