#!/bin/bash # Copyright 2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 source tests-common.sh || exit inherit eapi9-pipestatus tps() { local exp_ret=${1} cmd=${2} local have_ret tbegin "${cmd} -> ret: ${exp_ret}" eval "${cmd}; pipestatus" have_ret=$? [[ ${have_ret} -eq ${exp_ret} ]] tend $? "returned: ${have_ret}" } tpsv() { local exp_ret=${1} exp_out=${2} cmd=${3} local have_ret have_out tbegin "${cmd} -> ret: ${exp_ret}, out: ${exp_out}" have_out=$(eval "${cmd}; pipestatus -v") have_ret=$? [[ ${have_ret} -eq ${exp_ret} && ${have_out} == "${exp_out}" ]] tend $? "returned: ${have_ret}, output: ${have_out}" } txf() { local out tbegin "XFAIL: $*" out=$("$@" 2>&1) [[ ${out} == die:* ]] tend $? "function did not die" } ret() { return ${1} } tps 0 "true" tps 1 "false" tps 0 "true | true" tps 1 "false | true" tps 2 "ret 2 | true" tps 1 "true | false | true" tps 5 "true | false | ret 5 | true" tpsv 0 "0 0 0" "true | true | true" tpsv 1 "1 0" "false | true" tpsv 2 "3 2 0" "ret 3 | ret 2 | true" txf pipestatus bad_arg txf pipestatus -v extra_arg texit