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