instance.tc 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. # description: Test creation and deletion of trace instances
  4. if [ ! -d instances ] ; then
  5. echo "no instance directory with this kernel"
  6. exit_unsupported;
  7. fi
  8. fail() { # mesg
  9. rmdir x y z 2>/dev/null
  10. echo $1
  11. set -e
  12. exit_fail
  13. }
  14. cd instances
  15. # we don't want to fail on error
  16. set +e
  17. mkdir x
  18. rmdir x
  19. result=$?
  20. if [ $result -ne 0 ]; then
  21. echo "instance rmdir not supported"
  22. exit_unsupported
  23. fi
  24. instance_slam() {
  25. while :; do
  26. mkdir x
  27. mkdir y
  28. mkdir z
  29. rmdir x
  30. rmdir y
  31. rmdir z
  32. done 2>/dev/null
  33. }
  34. instance_slam &
  35. p1=$!
  36. echo $p1
  37. instance_slam &
  38. p2=$!
  39. echo $p2
  40. instance_slam &
  41. p3=$!
  42. echo $p3
  43. instance_slam &
  44. p4=$!
  45. echo $p4
  46. instance_slam &
  47. p5=$!
  48. echo $p5
  49. ls -lR >/dev/null
  50. sleep 1
  51. kill -1 $p1
  52. kill -1 $p2
  53. kill -1 $p3
  54. kill -1 $p4
  55. kill -1 $p5
  56. echo "Wait for processes to finish"
  57. wait $p1 $p2 $p3 $p4 $p5
  58. echo "all processes finished, wait for cleanup"
  59. mkdir x y z
  60. ls x y z
  61. rmdir x y z
  62. for d in x y z; do
  63. if [ -d $d ]; then
  64. fail "instance $d still exists"
  65. fi
  66. done
  67. set -e
  68. exit 0