instance.tc 1016 B

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