1#!/bin/sh 2# exercises create, info, send and recv subcommands. 3 4subject='posixmqcontrol' 5topic='/test123' 6 7${subject} info -q "$topic" 2>/dev/null 8if [ $? == 0 ]; then 9 echo "sorry, $topic exists." 10 exit 1 11fi 12 13# create trivial queue that can hold 8 messages of 64 bytes each. 14${subject} create -q "$topic" -s 64 -d 8 15if [ $? != 0 ]; then 16 exit 1 17fi 18 19info=$(${subject} info -q "$topic") 20if [ $? != 0 ]; then 21 exit 1 22fi 23expected='MSGSIZE: 64' 24actual=$(echo "${info}" | grep 'MSGSIZE: ') 25if [ "$expected" != "$actual" ]; then 26 echo "EXPECTED: $expected" 27 echo " ACTUAL: $actual" 28 exit 1 29fi 30expected='MAXMSG: 8' 31actual=$(echo "${info}" | grep 'MAXMSG: ') 32if [ "$expected" != "$actual" ]; then 33 echo "EXPECTED: $expected" 34 echo " ACTUAL: $actual" 35 exit 1 36fi 37expected='CURMSG: 0' 38actual=$(echo "${info}" | grep 'CURMSG: ') 39if [ "$expected" != "$actual" ]; then 40 echo "EXPECTED: $expected" 41 echo " ACTUAL: $actual" 42 exit 1 43fi 44 45# write eight messages of increasing priority. 46for i in 1 2 3 4 5 6 7 8 47do 48 ${subject} send -q "$topic" -c "message $i" -p "$i" 49 if [ $? != 0 ]; then 50 exit 1 51 fi 52done 53 54info=$(${subject} info -q "$topic") 55if [ $? != 0 ]; then 56 exit 57fi 58expected='CURMSG: 8' 59actual=$(echo "${info}" | grep 'CURMSG: ') 60if [ "$expected" != "$actual" ]; then 61 echo "EXPECTED: $expected" 62 echo " ACTUAL: $actual" 63 exit 1 64fi 65 66# expect the eight messages to appear in priority order. 67for i in 8 7 6 5 4 3 2 1 68do 69 expected='['"$i"']: message '"$i" 70 actual=$(${subject} recv -q "$topic") 71 if [ $? != 0 ]; then 72 exit 73 fi 74 if [ "$expected" != "$actual" ]; then 75 echo "EXPECTED: $expected" 76 echo " ACTUAL: $actual" 77 exit 1 78 fi 79done 80 81info=$(${subject} info -q "$topic") 82if [ $? != 0 ]; then 83 exit 1 84fi 85expected='CURMSG: 0' 86actual=$(echo "${info}" | grep 'CURMSG: ') 87if [ "$expected" != "$actual" ]; then 88 echo "EXPECTED: $expected" 89 echo " ACTUAL: $actual" 90 exit 1 91fi 92 93${subject} rm -q "$topic" 94if [ $? == 0 ]; then 95 echo "Pass!" 96 exit 0 97fi 98 99exit 1 100