1272343Sngie# $NetBSD: t_fdpass.sh,v 1.2 2012/08/16 08:39:43 martin Exp $
2272343Sngie#
3272343Sngie# Copyright (c) 2012 The NetBSD Foundation, Inc.
4272343Sngie# All rights reserved.
5272343Sngie#
6272343Sngie# This code is derived from software contributed to The NetBSD Foundation
7272343Sngie# by Christos Zoulas
8272343Sngie#
9272343Sngie# Redistribution and use in source and binary forms, with or without
10272343Sngie# modification, are permitted provided that the following conditions
11272343Sngie# are met:
12272343Sngie# 1. Redistributions of source code must retain the above copyright
13272343Sngie#    notice, this list of conditions and the following disclaimer.
14272343Sngie# 2. Redistributions in binary form must reproduce the above copyright
15272343Sngie#    notice, this list of conditions and the following disclaimer in the
16272343Sngie#    documentation and/or other materials provided with the distribution.
17272343Sngie#
18272343Sngie# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19272343Sngie# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20272343Sngie# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21272343Sngie# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22272343Sngie# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23272343Sngie# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24272343Sngie# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25272343Sngie# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26272343Sngie# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27272343Sngie# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28272343Sngie# POSSIBILITY OF SUCH DAMAGE.
29272343Sngie#
30272343Sngie
31272343Sngiehave32() {
32272343Sngie	local src="$(atf_get_srcdir)"
33272343Sngie	if cmp "${src}/fdpass64" "${src}/fdpass32" > /dev/null
34272343Sngie	then
35272343Sngie		# echo "no -m32 support"
36272343Sngie		return 1
37272343Sngie	else
38272343Sngie		return 0
39272343Sngie	fi
40272343Sngie}
41272343Sngie
42272343Sngieatf_test_case fdpass_normal
43272343Sngie
44272343Sngiefdpass_normal_head() {
45272343Sngie	atf_set "descr" "Test file descriptor passing (default)"
46272343Sngie}
47272343Sngie
48272343Sngiefdpass_normal_body() {
49272343Sngie	local src="$(atf_get_srcdir)"
50272343Sngie	atf_check "${src}/fdpass64"
51272343Sngie}
52272343Sngie
53272343Sngie
54272343Sngieatf_test_case fdpass_compat
55272343Sngie
56272343Sngiefdpass_compat_head() {
57272343Sngie	atf_set "descr" "Test file descriptor passing (compat)"
58272343Sngie}
59272343Sngie
60272343Sngiefdpass_compat_body() {
61272343Sngie	local src="$(atf_get_srcdir)"
62272343Sngie	have32 && atf_check "${src}/fdpass32"
63272343Sngie}
64272343Sngie
65272343Sngie
66272343Sngieatf_test_case fdpass_normal_compat
67272343Sngie
68272343Sngiefdpass_normal_compat_head() {
69272343Sngie	atf_set "descr" "Test file descriptor passing (normal->compat)"
70272343Sngie}
71272343Sngie
72272343Sngiefdpass_normal_compat_body() {
73272343Sngie	local src="$(atf_get_srcdir)"
74272343Sngie	have32 && atf_check "${src}/fdpass64" -p "${src}/fdpass32"
75272343Sngie}
76272343Sngie
77272343Sngie
78272343Sngieatf_test_case fdpass_compat_normal
79272343Sngie
80272343Sngiefdpass_compat_normal_head() {
81272343Sngie	atf_set "descr" "Test file descriptor passing (normal->compat)"
82272343Sngie}
83272343Sngie
84272343Sngiefdpass_compat_normal_body() {
85272343Sngie	local src="$(atf_get_srcdir)"
86272343Sngie	have32 && atf_check "${src}/fdpass32" -p "${src}/fdpass64"
87272343Sngie}
88272343Sngie
89272343Sngie
90272343Sngieatf_init_test_cases()
91272343Sngie{
92272343Sngie	atf_add_test_case fdpass_normal
93272343Sngie	if have32
94272343Sngie	then
95272343Sngie		atf_add_test_case fdpass_compat
96272343Sngie		atf_add_test_case fdpass_compat_normal
97272343Sngie		atf_add_test_case fdpass_normal_compat
98272343Sngie	fi
99272343Sngie}
100