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