Mercurial > hg > toybox
comparison tests/renice.test @ 1485:8700cbe1cb29 draft
Move testsuite out of scripts/test into its own top level tests directory, and make ctrl-c kill "make test" more reliably.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sat, 20 Sep 2014 13:09:14 -0500 |
parents | scripts/test/renice.test@94677e7b6d97 |
children |
comparison
equal
deleted
inserted
replaced
1484:19435f12ec63 | 1485:8700cbe1cb29 |
---|---|
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 | |
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 |