1# $NetBSD: t_fdpass.sh,v 1.2 2012/08/16 08:39:43 martin Exp $
2#
3# Copyright (c) 2012 The NetBSD Foundation, Inc.
4# All rights reserved.
5#
6# This code is derived from software contributed to The NetBSD Foundation
7# by Christos Zoulas
8#
9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions
11# are met:
12# 1. Redistributions of source code must retain the above copyright
13#    notice, this list of conditions and the following disclaimer.
14# 2. Redistributions in binary form must reproduce the above copyright
15#    notice, this list of conditions and the following disclaimer in the
16#    documentation and/or other materials provided with the distribution.
17#
18# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28# POSSIBILITY OF SUCH DAMAGE.
29#
30
31have32() {
32	local src="$(atf_get_srcdir)"
33	if cmp "${src}/fdpass64" "${src}/fdpass32" > /dev/null
34	then
35		# echo "no -m32 support"
36		return 1
37	else
38		return 0
39	fi
40}
41
42atf_test_case fdpass_normal
43
44fdpass_normal_head() {
45	atf_set "descr" "Test file descriptor passing (default)"
46}
47
48fdpass_normal_body() {
49	local src="$(atf_get_srcdir)"
50	atf_check "${src}/fdpass64"
51}
52
53
54atf_test_case fdpass_compat
55
56fdpass_compat_head() {
57	atf_set "descr" "Test file descriptor passing (compat)"
58}
59
60fdpass_compat_body() {
61	local src="$(atf_get_srcdir)"
62	have32 && atf_check "${src}/fdpass32"
63}
64
65
66atf_test_case fdpass_normal_compat
67
68fdpass_normal_compat_head() {
69	atf_set "descr" "Test file descriptor passing (normal->compat)"
70}
71
72fdpass_normal_compat_body() {
73	local src="$(atf_get_srcdir)"
74	have32 && atf_check "${src}/fdpass64" -p "${src}/fdpass32"
75}
76
77
78atf_test_case fdpass_compat_normal
79
80fdpass_compat_normal_head() {
81	atf_set "descr" "Test file descriptor passing (normal->compat)"
82}
83
84fdpass_compat_normal_body() {
85	local src="$(atf_get_srcdir)"
86	have32 && atf_check "${src}/fdpass32" -p "${src}/fdpass64"
87}
88
89
90atf_init_test_cases()
91{
92	atf_add_test_case fdpass_normal
93	if have32
94	then
95		atf_add_test_case fdpass_compat
96		atf_add_test_case fdpass_compat_normal
97		atf_add_test_case fdpass_normal_compat
98	fi
99}
100