test-shadow-vars.sh 3.7 KB

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