11.2Sgutterid# $NetBSD: t_fexecve.sh,v 1.2 2023/05/04 00:02:10 gutteridge Exp $ 21.1Schristos# 31.1Schristos# Copyright (c) 2019 The NetBSD Foundation, Inc. 41.1Schristos# All rights reserved. 51.1Schristos# 61.1Schristos# This code is derived from software contributed to The NetBSD Foundation 71.1Schristos# by Christos Zoulas. 81.1Schristos# 91.1Schristos# Redistribution and use in source and binary forms, with or without 101.1Schristos# modification, are permitted provided that the following conditions 111.1Schristos# are met: 121.1Schristos# 1. Redistributions of source code must retain the above copyright 131.1Schristos# notice, this list of conditions and the following disclaimer. 141.1Schristos# 2. Redistributions in binary form must reproduce the above copyright 151.1Schristos# notice, this list of conditions and the following disclaimer in the 161.1Schristos# documentation and/or other materials provided with the distribution. 171.1Schristos# 181.1Schristos# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 191.1Schristos# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 201.1Schristos# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 211.1Schristos# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 221.1Schristos# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 231.1Schristos# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 241.1Schristos# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 251.1Schristos# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 261.1Schristos# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 271.1Schristos# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 281.1Schristos# POSSIBILITY OF SUCH DAMAGE. 291.1Schristos# 301.1Schristos 311.1SchristosHELPER=$(atf_get_srcdir)/h_fexecve 321.1Schristos 331.1Schristosatf_test_case fexecve_elf 341.2Sgutteridfexecve_elf_head() 351.1Schristos{ 361.1Schristos atf_set "descr" "Test fexecve with ELF executables" 371.1Schristos} 381.1Schristos 391.1Schristosfexecve_elf_body() 401.1Schristos{ 411.1Schristos cat > hello.c << EOF 421.1Schristos#include <stdio.h> 431.1Schristosint main(void) { 441.1Schristos printf("hello world\n"); 451.1Schristos return 0; 461.1Schristos} 471.1SchristosEOF 481.1Schristos atf_check -s exit:0 -o ignore -e ignore cc -o hello hello.c 491.1Schristos atf_check -o inline:"hello world\n" ${HELPER} ./hello 501.1Schristos} 511.1Schristos 521.1Schristosatf_test_case fexecve_script 531.2Sgutteridfexecve_script_head() 541.1Schristos{ 551.1Schristos atf_set "descr" "Test fexecve with a shell script" 561.1Schristos} 571.1Schristos 581.1Schristosfexecve_script_body() 591.1Schristos{ 601.1Schristos cat > goodbye << EOF 611.1Schristos#!/bin/sh 621.1Schristosecho goodbye 631.1SchristosEOF 641.1Schristos atf_check -s exit:0 -o ignore -e ignore chmod +x goodbye 651.1Schristos atf_check -s exit:0 -o inline:"goodbye\n" ${HELPER} ./goodbye 661.1Schristos} 671.1Schristos 681.1Schristosatf_init_test_cases() 691.1Schristos{ 701.1Schristos atf_add_test_case fexecve_elf 711.1Schristos atf_add_test_case fexecve_script 721.1Schristos} 73