instance.tc 1.0 KB

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