1159045Smaxim#!/bin/sh
2159045Smaxim# $FreeBSD: releng/10.2/tools/regression/sockets/unix_cmsg/unix_cmsg.t 246670 2013-02-11 12:56:23Z pluknet $
3159045Smaxim
4159045Smaximcd `dirname $0`
5159045Smaximcmd="./`basename $0 .t`"
6159045Smaxim
7159045Smaximmake ${cmd} >/dev/null 2>&1
8159045Smaxim
9159045SmaximIFS=
10159045Smaximn=0
11159045Smaxim
12159045Smaximrun()
13159045Smaxim{
14246670Spluknet	result=`${cmd} -t $2 $3 ${5%% *} 2>&1`
15246670Spluknet	if [ $? -ne 0 ]; then
16246670Spluknet		echo -n "not "
17159045Smaxim	fi
18246670Spluknet	echo "ok $1 - $4 ${5#* }"
19159045Smaxim	echo ${result} | grep -E "SERVER|CLIENT" | while read line; do
20159045Smaxim		echo "# ${line}"
21159045Smaxim	done
22159045Smaxim}
23159045Smaxim
24246670Spluknetecho "1..47"
25159045Smaxim
26246670Spluknetfor t1 in \
27246670Spluknet	"1 Sending, receiving cmsgcred" \
28246670Spluknet	"4 Sending cmsgcred, receiving sockcred" \
29246670Spluknet	"5 Sending, receiving timeval" \
30246670Spluknet	"6 Sending, receiving bintime" \
31246670Spluknet	"7 Check cmsghdr.cmsg_len"
32159045Smaximdo
33246670Spluknet	for t2 in \
34246670Spluknet		"0 " \
35246670Spluknet		"1 (no data)" \
36246670Spluknet		"2 (no array)" \
37246670Spluknet		"3 (no data, array)"
38246670Spluknet	do
39246670Spluknet		n=$((n + 1))
40246670Spluknet		run ${n} stream "-z ${t2%% *}" STREAM "${t1} ${t2#* }"
41246670Spluknet	done
42159045Smaximdone
43159045Smaxim
44246670Spluknetfor t1 in \
45246670Spluknet	"2 Receiving sockcred (listening socket)" \
46246670Spluknet	"3 Receiving sockcred (accepted socket)"
47159045Smaximdo
48246670Spluknet	for t2 in \
49246670Spluknet		"0 " \
50246670Spluknet		"1 (no data)"
51246670Spluknet	do
52246670Spluknet		n=$((n + 1))
53246670Spluknet		run ${n} stream "-z ${t2%% *}" STREAM "${t1} ${t2#* }"
54246670Spluknet	done
55159045Smaximdone
56159045Smaxim
57246670Spluknetn=$((n + 1))
58246670Spluknetrun ${n} stream "-z 0" STREAM "8 Check LOCAL_PEERCRED socket option"
59159045Smaxim
60246670Spluknetfor t1 in \
61246670Spluknet	"1 Sending, receiving cmsgcred" \
62246670Spluknet	"3 Sending cmsgcred, receiving sockcred" \
63246670Spluknet	"4 Sending, receiving timeval" \
64246670Spluknet	"5 Sending, receiving bintime" \
65246670Spluknet	"6 Check cmsghdr.cmsg_len"
66246670Spluknetdo
67246670Spluknet	for t2 in \
68246670Spluknet		"0 " \
69246670Spluknet		"1 (no data)" \
70246670Spluknet		"2 (no array)" \
71246670Spluknet		"3 (no data, array)"
72246670Spluknet	do
73246670Spluknet		n=$((n + 1))
74246670Spluknet		run ${n} dgram "-z ${t2%% *}" DGRAM "${t1} ${t2#* }"
75246670Spluknet	done
76246670Spluknetdone
77246670Spluknet
78246670Spluknetfor t1 in \
79246670Spluknet	"2 Receiving sockcred"
80246670Spluknetdo
81246670Spluknet	for t2 in \
82246670Spluknet		"0 " \
83246670Spluknet		"1 (no data)"
84246670Spluknet	do
85246670Spluknet		n=$((n + 1))
86246670Spluknet		run ${n} dgram "-z ${t2%% *}" DGRAM "${t1} ${t2#* }"
87246670Spluknet	done
88246670Spluknetdone
89