0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 export TESTNAME="test085_prio"
0037
0038 PWD=`pwd`
0039 if [ `echo $PWD | grep $TESTNAME ` ]; then
0040
0041 echo > /dev/null
0042 else
0043
0044 pushd .
0045 echo "Doing cd"
0046 cd $TESTNAME
0047 fi;
0048
0049 . ../testenv.sh
0050
0051 export TESTDIR="$NDRX_APPHOME/atmitest/$TESTNAME"
0052 export PATH=$PATH:$TESTDIR
0053 export NDRX_ULOG=$TESTDIR
0054 export NDRX_TOUT=30
0055 export NDRX_SILENT=Y
0056
0057
0058
0059
0060 set_dom1() {
0061 echo "Setting domain 1"
0062 . ../dom1.sh
0063 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom1.xml
0064 export NDRX_DMNLOG=$TESTDIR/ndrxd-dom1.log
0065 export NDRX_LOG=$TESTDIR/ndrx-dom1.log
0066 export NDRX_DEBUG_CONF=$TESTDIR/debug-dom1.conf
0067 }
0068
0069
0070
0071
0072
0073
0074 function go_out {
0075 echo "Test exiting with: $1"
0076
0077 set_dom1;
0078 xadmin stop -y
0079 xadmin down -y
0080
0081
0082
0083
0084 xadmin killall atmiclt85
0085
0086 popd 2>/dev/null
0087 exit $1
0088 }
0089
0090 rm *.log
0091
0092 xadmin killall tpbridge
0093
0094 set_dom1;
0095 xadmin down -y
0096 xadmin start -y || go_out 1
0097
0098 xadmin psc
0099 xadmin ppm
0100 echo "Running off client"
0101
0102 set_dom1;
0103 (./atmiclt85 2>&1) > ./atmiclt-dom1.log
0104
0105
0106 RET=$?
0107
0108 if [[ "X$RET" != "X0" ]]; then
0109 go_out $RET
0110 fi
0111
0112
0113
0114
0115 POLLER=`xadmin poller`
0116
0117 if [[ "$POLLER" == "epoll" || "$POLLER" == "kqueue" ]]; then
0118
0119 xadmin psc
0120
0121 echo ">>> Benchmark the system, to check is test applicable"
0122 echo ">>>> Single process performance..."
0123 export NDRX_BENCH_FILE="perf1.log"
0124 export NDRX_BENCH_CONFIGNAME="results"
0125 exbenchcl -n1 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024
0126
0127 echo ">>>> MT process performance..."
0128 export NDRX_BENCH_FILE="perf2.log"
0129 export NDRX_BENCH_CONFIGNAME="results"
0130 exbenchcl -n2 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024
0131
0132 PERF1=`cat perf1.log | grep results | awk '{print $3}'`
0133 PERF2=`cat perf2.log | grep results | awk '{print $3}'`
0134
0135 echo "Results: 1 x thread [$PERF1] 2 x thread [$PERF2]"
0136
0137
0138
0139
0140 let "PERF1 = PERF1 + (PERF1 / 4)"
0141
0142 if [ $PERF2 -lt $PERF1 ]; then
0143 echo "Cannot continue - system too slow ($PERF2 < $PERF1) (increase vcpu count?)"
0144 go_out 0
0145 fi
0146
0147 echo ">>> Default is lower"
0148 export NDRX_BENCH_FILE="bench.def.log"
0149 export NDRX_BENCH_CONFIGNAME="results"
0150 exbenchcl -n5 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024 &
0151 BENCHPIDDEF_PID=$!
0152
0153
0154 export NDRX_BENCH_FILE="bench.70.log"
0155 export NDRX_BENCH_CONFIGNAME="results"
0156 exbenchcl -n5 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024 -p 70 &
0157 BENCHPID70_PID=$!
0158
0159
0160 wait $BENCHPIDDEF_PID
0161 wait $BENCHPID70_PID
0162
0163 RESDEF=`cat bench.def.log | grep results | awk '{print $3}'`
0164 RES70=`cat bench.70.log | grep results | awk '{print $3}'`
0165
0166 echo "[$RESDEF] vs [$RES70]"
0167
0168 if [[ "X$RESDEF" == "X" || "X$RES70" == "X" ]]; then
0169 echo "Missing results"
0170 go_out 1
0171 fi
0172
0173 if [[ "$RESDEF" -ge "$RES70" ]]; then
0174 echo "Priority does not work prio DEF processed $RESDEF (shall be <) prio 70 processed $RES70 (1)"
0175 go_out 1
0176 fi
0177
0178 rm bench.def.log
0179 rm bench.70.log
0180
0181 echo ">>> Default is higher"
0182 xadmin stop -y
0183 export NDRX_CONFIG=$TESTDIR/ndrxconfig-dom1_svcprio.xml
0184 xadmin start -y
0185
0186 export NDRX_BENCH_FILE="bench.def.log"
0187 export NDRX_BENCH_CONFIGNAME="results"
0188 exbenchcl -n5 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024 &
0189 BENCHPIDDEF_PID=$!
0190
0191
0192 export NDRX_BENCH_FILE="bench.70.log"
0193 export NDRX_BENCH_CONFIGNAME="results"
0194 exbenchcl -n5 -P -t20 -b "{\"T_LONG_FLD\":5}" -f T_CARRAY_FLD -S1024 -p 70 &
0195 BENCHPID70_PID=$!
0196
0197
0198 wait $BENCHPIDDEF_PID
0199 wait $BENCHPID70_PID
0200
0201 RESDEF=`cat bench.def.log | grep results | awk '{print $3}'`
0202 RES70=`cat bench.70.log | grep results | awk '{print $3}'`
0203
0204 echo "[$RESDEF] vs [$RES70]"
0205
0206 if [[ "X$RESDEF" == "X" || "X$RES70" == "X" ]]; then
0207 echo "Missing results"
0208 go_out 1
0209 fi
0210
0211 if [[ "$RESDEF" -le "$RES70" ]]; then
0212 echo "Priority does not work prio DEF processed $RESDEF (shall be >) prio 70 processed $RES70 (2)"
0213 go_out 1
0214 fi
0215
0216
0217 fi
0218
0219
0220 if [ "X`grep TESTERROR *.log`" != "X" ]; then
0221 echo "Test error detected!"
0222 RET=-2
0223 fi
0224
0225
0226 go_out $RET
0227
0228
0229
0230