162306a36Sopenharmony_ci#!/bin/bash
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci# Copyright (C) 2018 Joe Lawrence <joe.lawrence@redhat.com>
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci. $(dirname $0)/functions.sh
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciMOD_TEST=test_klp_shadow_vars
862306a36Sopenharmony_ci
962306a36Sopenharmony_cisetup_config
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci# - load a module that exercises the shadow variable API
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cistart_test "basic shadow variable API"
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciload_mod $MOD_TEST
1762306a36Sopenharmony_ciunload_mod $MOD_TEST
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cicheck_result "% modprobe $MOD_TEST
2062306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
2162306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
2262306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR3 -> PTR2
2362306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
2462306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR6 -> PTR5
2562306a36Sopenharmony_ci$MOD_TEST: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
2662306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR8 -> PTR7
2762306a36Sopenharmony_ci$MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
2862306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR11 -> PTR10
2962306a36Sopenharmony_ci$MOD_TEST: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
3062306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR13 -> PTR12
3162306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
3262306a36Sopenharmony_ci$MOD_TEST: shadow_ctor: PTR16 -> PTR15
3362306a36Sopenharmony_ci$MOD_TEST: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
3462306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
3562306a36Sopenharmony_ci$MOD_TEST:   got expected PTR3 -> PTR2 result
3662306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
3762306a36Sopenharmony_ci$MOD_TEST:   got expected PTR6 -> PTR5 result
3862306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
3962306a36Sopenharmony_ci$MOD_TEST:   got expected PTR8 -> PTR7 result
4062306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
4162306a36Sopenharmony_ci$MOD_TEST:   got expected PTR11 -> PTR10 result
4262306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
4362306a36Sopenharmony_ci$MOD_TEST:   got expected PTR13 -> PTR12 result
4462306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
4562306a36Sopenharmony_ci$MOD_TEST:   got expected PTR16 -> PTR15 result
4662306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
4762306a36Sopenharmony_ci$MOD_TEST:   got expected PTR3 -> PTR2 result
4862306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
4962306a36Sopenharmony_ci$MOD_TEST:   got expected PTR8 -> PTR7 result
5062306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
5162306a36Sopenharmony_ci$MOD_TEST:   got expected PTR13 -> PTR12 result
5262306a36Sopenharmony_ci$MOD_TEST: shadow_dtor(obj=PTR1, shadow_data=PTR3)
5362306a36Sopenharmony_ci$MOD_TEST: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
5462306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
5562306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
5662306a36Sopenharmony_ci$MOD_TEST: shadow_dtor(obj=PTR9, shadow_data=PTR8)
5762306a36Sopenharmony_ci$MOD_TEST: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
5862306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
5962306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
6062306a36Sopenharmony_ci$MOD_TEST: shadow_dtor(obj=PTR14, shadow_data=PTR13)
6162306a36Sopenharmony_ci$MOD_TEST: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
6262306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
6362306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
6462306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
6562306a36Sopenharmony_ci$MOD_TEST:   got expected PTR6 -> PTR5 result
6662306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
6762306a36Sopenharmony_ci$MOD_TEST:   got expected PTR11 -> PTR10 result
6862306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
6962306a36Sopenharmony_ci$MOD_TEST:   got expected PTR16 -> PTR15 result
7062306a36Sopenharmony_ci$MOD_TEST: klp_shadow_free_all(id=0x1235, dtor=PTR0)
7162306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
7262306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
7362306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
7462306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
7562306a36Sopenharmony_ci$MOD_TEST: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
7662306a36Sopenharmony_ci$MOD_TEST:   got expected NULL result
7762306a36Sopenharmony_ci% rmmod $MOD_TEST"
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciexit 0
80