Commit | Line | Data |
---|---|---|
a2818ee4 JL |
1 | #!/bin/bash |
2 | # SPDX-License-Identifier: GPL-2.0 | |
3 | # Copyright (C) 2018 Joe Lawrence <joe.lawrence@redhat.com> | |
4 | ||
5 | . $(dirname $0)/functions.sh | |
6 | ||
7 | MOD_TEST=test_klp_shadow_vars | |
8 | ||
35c9e74c | 9 | setup_config |
a2818ee4 JL |
10 | |
11 | ||
a2818ee4 JL |
12 | # - load a module that exercises the shadow variable API |
13 | ||
2eeb0d45 | 14 | start_test "basic shadow variable API" |
a2818ee4 JL |
15 | |
16 | load_mod $MOD_TEST | |
17 | unload_mod $MOD_TEST | |
18 | ||
c4bbe83d | 19 | check_result "% insmod test_modules/$MOD_TEST.ko |
76efe6da | 20 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0 |
a2818ee4 | 21 | $MOD_TEST: got expected NULL result |
76efe6da YC |
22 | $MOD_TEST: shadow_ctor: PTR3 -> PTR2 |
23 | $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3 | |
24 | $MOD_TEST: shadow_ctor: PTR6 -> PTR5 | |
25 | $MOD_TEST: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6 | |
26 | $MOD_TEST: shadow_ctor: PTR8 -> PTR7 | |
27 | $MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8 | |
28 | $MOD_TEST: shadow_ctor: PTR11 -> PTR10 | |
29 | $MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11 | |
30 | $MOD_TEST: shadow_ctor: PTR13 -> PTR12 | |
31 | $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13 | |
32 | $MOD_TEST: shadow_ctor: PTR16 -> PTR15 | |
33 | $MOD_TEST: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16 | |
34 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3 | |
35 | $MOD_TEST: got expected PTR3 -> PTR2 result | |
36 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6 | |
37 | $MOD_TEST: got expected PTR6 -> PTR5 result | |
a2818ee4 | 38 | $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8 |
76efe6da YC |
39 | $MOD_TEST: got expected PTR8 -> PTR7 result |
40 | $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11 | |
41 | $MOD_TEST: got expected PTR11 -> PTR10 result | |
42 | $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13 | |
43 | $MOD_TEST: got expected PTR13 -> PTR12 result | |
44 | $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16 | |
45 | $MOD_TEST: got expected PTR16 -> PTR15 result | |
46 | $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3 | |
47 | $MOD_TEST: got expected PTR3 -> PTR2 result | |
48 | $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8 | |
49 | $MOD_TEST: got expected PTR8 -> PTR7 result | |
50 | $MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13 | |
51 | $MOD_TEST: got expected PTR13 -> PTR12 result | |
52 | $MOD_TEST: shadow_dtor(obj=PTR1, shadow_data=PTR3) | |
53 | $MOD_TEST: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17) | |
54 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0 | |
a2818ee4 JL |
55 | $MOD_TEST: got expected NULL result |
56 | $MOD_TEST: shadow_dtor(obj=PTR9, shadow_data=PTR8) | |
76efe6da | 57 | $MOD_TEST: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17) |
a2818ee4 JL |
58 | $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0 |
59 | $MOD_TEST: got expected NULL result | |
76efe6da YC |
60 | $MOD_TEST: shadow_dtor(obj=PTR14, shadow_data=PTR13) |
61 | $MOD_TEST: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17) | |
62 | $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0 | |
a2818ee4 | 63 | $MOD_TEST: got expected NULL result |
76efe6da YC |
64 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6 |
65 | $MOD_TEST: got expected PTR6 -> PTR5 result | |
66 | $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11 | |
67 | $MOD_TEST: got expected PTR11 -> PTR10 result | |
68 | $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16 | |
69 | $MOD_TEST: got expected PTR16 -> PTR15 result | |
70 | $MOD_TEST: klp_shadow_free_all(id=0x1235, dtor=PTR0) | |
71 | $MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0 | |
72 | $MOD_TEST: got expected NULL result | |
73 | $MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0 | |
74 | $MOD_TEST: got expected NULL result | |
75 | $MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0 | |
76 | $MOD_TEST: got expected NULL result | |
77 | % rmmod $MOD_TEST" | |
a2818ee4 JL |
78 | |
79 | exit 0 |