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