0001
0002
0003
0004
0005 . $(dirname $0)/functions.sh
0006
0007 MOD_TEST=test_klp_shadow_vars
0008
0009 setup_config
0010
0011
0012
0013
0014 start_test "basic shadow variable API"
0015
0016 load_mod $MOD_TEST
0017 unload_mod $MOD_TEST
0018
0019 check_result "% modprobe $MOD_TEST
0020 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
0021 $MOD_TEST: got expected NULL result
0022 $MOD_TEST: shadow_ctor: PTR3 -> PTR2
0023 $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
0024 $MOD_TEST: shadow_ctor: PTR6 -> PTR5
0025 $MOD_TEST: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
0026 $MOD_TEST: shadow_ctor: PTR8 -> PTR7
0027 $MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
0028 $MOD_TEST: shadow_ctor: PTR11 -> PTR10
0029 $MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
0030 $MOD_TEST: shadow_ctor: PTR13 -> PTR12
0031 $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
0032 $MOD_TEST: shadow_ctor: PTR16 -> PTR15
0033 $MOD_TEST: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
0034 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
0035 $MOD_TEST: got expected PTR3 -> PTR2 result
0036 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
0037 $MOD_TEST: got expected PTR6 -> PTR5 result
0038 $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
0039 $MOD_TEST: got expected PTR8 -> PTR7 result
0040 $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
0041 $MOD_TEST: got expected PTR11 -> PTR10 result
0042 $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
0043 $MOD_TEST: got expected PTR13 -> PTR12 result
0044 $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
0045 $MOD_TEST: got expected PTR16 -> PTR15 result
0046 $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
0047 $MOD_TEST: got expected PTR3 -> PTR2 result
0048 $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
0049 $MOD_TEST: got expected PTR8 -> PTR7 result
0050 $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
0051 $MOD_TEST: got expected PTR13 -> PTR12 result
0052 $MOD_TEST: shadow_dtor(obj=PTR1, shadow_data=PTR3)
0053 $MOD_TEST: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
0054 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
0055 $MOD_TEST: got expected NULL result
0056 $MOD_TEST: shadow_dtor(obj=PTR9, shadow_data=PTR8)
0057 $MOD_TEST: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
0058 $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
0059 $MOD_TEST: got expected NULL result
0060 $MOD_TEST: shadow_dtor(obj=PTR14, shadow_data=PTR13)
0061 $MOD_TEST: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
0062 $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
0063 $MOD_TEST: got expected NULL result
0064 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
0065 $MOD_TEST: got expected PTR6 -> PTR5 result
0066 $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
0067 $MOD_TEST: got expected PTR11 -> PTR10 result
0068 $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
0069 $MOD_TEST: got expected PTR16 -> PTR15 result
0070 $MOD_TEST: klp_shadow_free_all(id=0x1235, dtor=PTR0)
0071 $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
0072 $MOD_TEST: got expected NULL result
0073 $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
0074 $MOD_TEST: got expected NULL result
0075 $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
0076 $MOD_TEST: got expected NULL result
0077 % rmmod $MOD_TEST"
0078
0079 exit 0