blob: e04cb354f56b2059359f0aa3fa941a5cb6d8b220 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001#!/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
7MOD_TEST=test_klp_shadow_vars
8
Olivier Deprez157378f2022-04-04 15:47:50 +02009setup_config
David Brazdil0f672f62019-12-10 10:32:29 +000010
11
David Brazdil0f672f62019-12-10 10:32:29 +000012# - load a module that exercises the shadow variable API
13
Olivier Deprez157378f2022-04-04 15:47:50 +020014start_test "basic shadow variable API"
David Brazdil0f672f62019-12-10 10:32:29 +000015
16load_mod $MOD_TEST
17unload_mod $MOD_TEST
18
19check_result "% modprobe $MOD_TEST
Olivier Deprez157378f2022-04-04 15:47:50 +020020$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
David Brazdil0f672f62019-12-10 10:32:29 +000021$MOD_TEST: got expected NULL result
Olivier Deprez157378f2022-04-04 15:47:50 +020022$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
David Brazdil0f672f62019-12-10 10:32:29 +000038$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
Olivier Deprez157378f2022-04-04 15:47:50 +020039$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
David Brazdil0f672f62019-12-10 10:32:29 +000055$MOD_TEST: got expected NULL result
56$MOD_TEST: shadow_dtor(obj=PTR9, shadow_data=PTR8)
Olivier Deprez157378f2022-04-04 15:47:50 +020057$MOD_TEST: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
David Brazdil0f672f62019-12-10 10:32:29 +000058$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
59$MOD_TEST: got expected NULL result
Olivier Deprez157378f2022-04-04 15:47:50 +020060$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
David Brazdil0f672f62019-12-10 10:32:29 +000063$MOD_TEST: got expected NULL result
Olivier Deprez157378f2022-04-04 15:47:50 +020064$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"
David Brazdil0f672f62019-12-10 10:32:29 +000078
79exit 0