toybox/tests/renice.test
<<
>>
Prefs
   1#!/bin/bash
   2
   3# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
   4# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
   5
   6[ -f testing.sh ] && . testing.sh
   7
   8#testing "name" "command" "result" "infile" "stdin"
   9
  10fun_nice_val() 
  11{
  12  for each_proc in $@
  13  do
  14    echo `cut -d' ' -f18 /proc/${each_proc}/stat`
  15  done
  16}
  17
  18# creating processes as a test data
  19yes >/dev/null &
  20proc1=$!
  21yes >/dev/null &
  22proc2=$!
  23yes >/dev/null &
  24proc3=$!
  25yes >/dev/null &
  26proc4=$!
  27yes >/dev/null &
  28proc5=$!
  29
  30n_val1=`fun_nice_val $proc1`
  31n_val2=`fun_nice_val $proc2`
  32n_val3=`fun_nice_val $proc3`
  33n_val4=`fun_nice_val $proc4`
  34n_val5=`fun_nice_val $proc5`
  35
  36# Redirecting errors to /dev/null
  37arg="2>/dev/null"
  38
  39for n_v in "-1" "1"
  40do
  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 "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 "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
  63done
  64
  65# Starting Boundary Test Here .. 
  66loop_cnt=2
  67echo -n "TEST: Boundary value test for Id($proc1)..[old_nice_val/new_nice_val]:"
  68cnt=0
  69n_val=1
  70while [ $cnt -gt -1 ]
  71do
  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
 107done
 108# Boundary test End
 109
 110kill -9 $proc1 $proc2 $proc3 $proc4 $proc5
 111