xref: /freebsd/tools/regression/sockets/unix_cmsg/unix_cmsg.t (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
15368db27SMaxim Konovalov#!/bin/sh
25368db27SMaxim Konovalov
35368db27SMaxim Konovalovcd `dirname $0`
45368db27SMaxim Konovalovcmd="./`basename $0 .t`"
55368db27SMaxim Konovalov
65368db27SMaxim Konovalovmake ${cmd} >/dev/null 2>&1
75368db27SMaxim Konovalov
85368db27SMaxim KonovalovIFS=
95368db27SMaxim Konovalovn=0
105368db27SMaxim Konovalov
115368db27SMaxim Konovalovrun()
125368db27SMaxim Konovalov{
13*b5718158SSergey Kandaurov	result=`${cmd} -t $2 $3 ${5%% *} 2>&1`
14*b5718158SSergey Kandaurov	if [ $? -ne 0 ]; then
15*b5718158SSergey Kandaurov		echo -n "not "
165368db27SMaxim Konovalov	fi
17*b5718158SSergey Kandaurov	echo "ok $1 - $4 ${5#* }"
185368db27SMaxim Konovalov	echo ${result} | grep -E "SERVER|CLIENT" | while read line; do
195368db27SMaxim Konovalov		echo "# ${line}"
205368db27SMaxim Konovalov	done
215368db27SMaxim Konovalov}
225368db27SMaxim Konovalov
23*b5718158SSergey Kandaurovecho "1..47"
245368db27SMaxim Konovalov
25*b5718158SSergey Kandaurovfor t1 in \
26*b5718158SSergey Kandaurov	"1 Sending, receiving cmsgcred" \
27*b5718158SSergey Kandaurov	"4 Sending cmsgcred, receiving sockcred" \
28*b5718158SSergey Kandaurov	"5 Sending, receiving timeval" \
29*b5718158SSergey Kandaurov	"6 Sending, receiving bintime" \
30*b5718158SSergey Kandaurov	"7 Check cmsghdr.cmsg_len"
315368db27SMaxim Konovalovdo
32*b5718158SSergey Kandaurov	for t2 in \
33*b5718158SSergey Kandaurov		"0 " \
34*b5718158SSergey Kandaurov		"1 (no data)" \
35*b5718158SSergey Kandaurov		"2 (no array)" \
36*b5718158SSergey Kandaurov		"3 (no data, array)"
37*b5718158SSergey Kandaurov	do
38*b5718158SSergey Kandaurov		n=$((n + 1))
39*b5718158SSergey Kandaurov		run ${n} stream "-z ${t2%% *}" STREAM "${t1} ${t2#* }"
40*b5718158SSergey Kandaurov	done
415368db27SMaxim Konovalovdone
425368db27SMaxim Konovalov
43*b5718158SSergey Kandaurovfor t1 in \
44*b5718158SSergey Kandaurov	"2 Receiving sockcred (listening socket)" \
45*b5718158SSergey Kandaurov	"3 Receiving sockcred (accepted socket)"
465368db27SMaxim Konovalovdo
47*b5718158SSergey Kandaurov	for t2 in \
48*b5718158SSergey Kandaurov		"0 " \
49*b5718158SSergey Kandaurov		"1 (no data)"
50*b5718158SSergey Kandaurov	do
51*b5718158SSergey Kandaurov		n=$((n + 1))
52*b5718158SSergey Kandaurov		run ${n} stream "-z ${t2%% *}" STREAM "${t1} ${t2#* }"
53*b5718158SSergey Kandaurov	done
545368db27SMaxim Konovalovdone
555368db27SMaxim Konovalov
56*b5718158SSergey Kandaurovn=$((n + 1))
57*b5718158SSergey Kandaurovrun ${n} stream "-z 0" STREAM "8 Check LOCAL_PEERCRED socket option"
585368db27SMaxim Konovalov
59*b5718158SSergey Kandaurovfor t1 in \
60*b5718158SSergey Kandaurov	"1 Sending, receiving cmsgcred" \
61*b5718158SSergey Kandaurov	"3 Sending cmsgcred, receiving sockcred" \
62*b5718158SSergey Kandaurov	"4 Sending, receiving timeval" \
63*b5718158SSergey Kandaurov	"5 Sending, receiving bintime" \
64*b5718158SSergey Kandaurov	"6 Check cmsghdr.cmsg_len"
65*b5718158SSergey Kandaurovdo
66*b5718158SSergey Kandaurov	for t2 in \
67*b5718158SSergey Kandaurov		"0 " \
68*b5718158SSergey Kandaurov		"1 (no data)" \
69*b5718158SSergey Kandaurov		"2 (no array)" \
70*b5718158SSergey Kandaurov		"3 (no data, array)"
71*b5718158SSergey Kandaurov	do
72*b5718158SSergey Kandaurov		n=$((n + 1))
73*b5718158SSergey Kandaurov		run ${n} dgram "-z ${t2%% *}" DGRAM "${t1} ${t2#* }"
74*b5718158SSergey Kandaurov	done
75*b5718158SSergey Kandaurovdone
76*b5718158SSergey Kandaurov
77*b5718158SSergey Kandaurovfor t1 in \
78*b5718158SSergey Kandaurov	"2 Receiving sockcred"
79*b5718158SSergey Kandaurovdo
80*b5718158SSergey Kandaurov	for t2 in \
81*b5718158SSergey Kandaurov		"0 " \
82*b5718158SSergey Kandaurov		"1 (no data)"
83*b5718158SSergey Kandaurov	do
84*b5718158SSergey Kandaurov		n=$((n + 1))
85*b5718158SSergey Kandaurov		run ${n} dgram "-z ${t2%% *}" DGRAM "${t1} ${t2#* }"
86*b5718158SSergey Kandaurov	done
87*b5718158SSergey Kandaurovdone
88