instance.tc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. x=`jobs -l`
  35. p1=`echo $x | cut -d' ' -f2`
  36. echo $p1
  37. instance_slam &
  38. x=`jobs -l | tail -1`
  39. p2=`echo $x | cut -d' ' -f2`
  40. echo $p2
  41. instance_slam &
  42. x=`jobs -l | tail -1`
  43. p3=`echo $x | cut -d' ' -f2`
  44. echo $p3
  45. instance_slam &
  46. x=`jobs -l | tail -1`
  47. p4=`echo $x | cut -d' ' -f2`
  48. echo $p4
  49. instance_slam &
  50. x=`jobs -l | tail -1`
  51. p5=`echo $x | cut -d' ' -f2`
  52. echo $p5
  53. ls -lR >/dev/null
  54. sleep 1
  55. kill -1 $p1
  56. kill -1 $p2
  57. kill -1 $p3
  58. kill -1 $p4
  59. kill -1 $p5
  60. echo "Wait for processes to finish"
  61. wait $p1 $p2 $p3 $p4 $p5
  62. echo "all processes finished, wait for cleanup"
  63. mkdir x y z
  64. ls x y z
  65. rmdir x y z
  66. for d in x y z; do
  67. if [ -d $d ]; then
  68. fail "instance $d still exists"
  69. fi
  70. done
  71. set -e
  72. exit 0