renice.test 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/bash
  2. # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
  3. # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
  4. [ -f testing.sh ] && . testing.sh
  5. #testing "name" "command" "result" "infile" "stdin"
  6. fun_nice_val()
  7. {
  8. for each_proc in $@
  9. do
  10. echo `cut -d' ' -f18 /proc/${each_proc}/stat`
  11. done
  12. }
  13. # creating processes as a test data
  14. yes >/dev/null &
  15. proc1=$!
  16. yes >/dev/null &
  17. proc2=$!
  18. yes >/dev/null &
  19. proc3=$!
  20. yes >/dev/null &
  21. proc4=$!
  22. yes >/dev/null &
  23. proc5=$!
  24. n_val1=`fun_nice_val $proc1`
  25. n_val2=`fun_nice_val $proc2`
  26. n_val3=`fun_nice_val $proc3`
  27. n_val4=`fun_nice_val $proc4`
  28. n_val5=`fun_nice_val $proc5`
  29. # Redirecting errors to /dev/null
  30. arg="2>/dev/null"
  31. for n_v in "-1" "1"
  32. do
  33. for n_o in "" " -p"
  34. do
  35. nice_val1=$((`fun_nice_val $proc1` + $n_v))
  36. nice_val2=$((`fun_nice_val $proc2` + $n_v))
  37. nice_val3=$((`fun_nice_val $proc3` + $n_v))
  38. nice_val4=$((`fun_nice_val $proc4` + $n_v))
  39. nice_val5=$((`fun_nice_val $proc5` + $n_v))
  40. testing "with -n=$n_v and with$n_o multiple_pids" \
  41. "renice -n $n_v$n_o $proc1 $proc2 $proc3 $proc4 $proc5 &&
  42. fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
  43. "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
  44. nice_val1=$((`fun_nice_val $proc1` + $n_v))
  45. nice_val2=$((`fun_nice_val $proc2` + $n_v))
  46. nice_val3=$((`fun_nice_val $proc3` + $n_v))
  47. nice_val4=$((`fun_nice_val $proc4` + $n_v))
  48. nice_val5=$((`fun_nice_val $proc5` + $n_v))
  49. testing "with -n=$n_v and with$n_o multiple_pids (some invalid)" \
  50. "renice -n $n_v$n_o $proc1 $proc2 88888 99999 $proc3 $proc4 $proc5 $arg ||
  51. fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
  52. "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
  53. done
  54. done
  55. # Starting Boundary Test Here ..
  56. loop_cnt=2
  57. echo -n "TEST: Boundary value test for Id($proc1)..[old_nice_val/new_nice_val]:"
  58. cnt=0
  59. n_val=1
  60. while [ $cnt -gt -1 ]
  61. do
  62. old_nice_val=`fun_nice_val $proc1`
  63. new_nice_val=`renice -n $n_val $proc1 >/dev/null 2>&1 && fun_nice_val $proc1`
  64. echo -n "[$old_nice_val/$new_nice_val],"
  65. if [ $old_nice_val -eq 39 -a $old_nice_val -eq $new_nice_val ]
  66. then
  67. echo -n " [Equals 39,doing -1] "
  68. n_val="-1"
  69. elif [ $old_nice_val -eq 0 -a $old_nice_val -eq $new_nice_val ]
  70. then
  71. echo -n " [Equals 0,doing +1] "
  72. n_val="1"
  73. elif [ $new_nice_val -gt 39 -o $new_nice_val -lt 0 ]
  74. then
  75. echo " [Test Fail] "
  76. echo "FAIL: renice with step 1 ($proc1) (boundary value)"
  77. cnt="-1"
  78. elif [ $new_nice_val -eq $n_val1 -a $new_nice_val -eq $(($old_nice_val+1)) ]
  79. then
  80. cnt=$(($cnt + 1))
  81. if [ $cnt -eq $loop_cnt ]
  82. then
  83. echo " [Test Pass] "
  84. echo "PASS: renice with step 1 ($proc1) (boundary value)"
  85. cnt="-1"
  86. fi
  87. else
  88. dif=`echo $(($new_nice_val-$old_nice_val))`
  89. dif=`echo ${dif/-}`
  90. if [ $dif -ne 1 ]
  91. then
  92. echo " [Test Fail] "
  93. echo "FAIL: renice with step 1 ($proc1) (boundary value)"
  94. cnt="-1"
  95. fi
  96. fi
  97. done
  98. # Boundary test End
  99. kill -9 $proc1 $proc2 $proc3 $proc4 $proc5