#!/bin/bash # This file is part of util-linux. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. TS_TOPDIR="${0%/*}/../.." TS_DESC="pipesz" . "$TS_TOPDIR"/functions.sh ts_init "$*" ts_check_test_command "$TS_CMD_PIPESZ" ts_check_test_command "$TS_HELPER_SYSINFO" set -o pipefail DEFAULT_PIPE_SIZE=$(($($TS_HELPER_SYSINFO pagesize) * 16)) ts_init_subtest "set-fd-bad" $TS_CMD_PIPESZ --check --set 4096 --fd 42 >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -eq 0 ]] && ts_logerr "expected failure" ts_finalize_subtest ts_init_subtest "set-fd" echo -n | $TS_CMD_PIPESZ --check --set 4096 --stdin >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest ts_init_subtest "set-file-bad" $TS_CMD_PIPESZ --check --set 4096 --file "/dev/null" >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -eq 0 ]] && ts_logerr "expected failure" ts_finalize_subtest ts_init_subtest "set-file" echo -n | $TS_CMD_PIPESZ --check --set 4096 --file "/dev/stdin" >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest ts_init_subtest "get-fd-bad" $TS_CMD_PIPESZ --check --get --fd 42 >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -eq 0 ]] && ts_logerr "expected failure" ts_finalize_subtest ts_init_subtest "get-fd" echo -n | $TS_CMD_PIPESZ --check --get --stdin 2>> $TS_ERRLOG | sed "s/$DEFAULT_PIPE_SIZE/DEFAULT_PIPE_SIZE/g" >> $TS_OUTPUT [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest ts_init_subtest "get-file-bad" $TS_CMD_PIPESZ --check --get --file "/dev/null" >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -eq 0 ]] && ts_logerr "expected failure" ts_finalize_subtest ts_init_subtest "get-file" echo -n | $TS_CMD_PIPESZ --check --get --file "/dev/stdin" 2>> $TS_ERRLOG | sed "s/$DEFAULT_PIPE_SIZE/DEFAULT_PIPE_SIZE/g" >> $TS_OUTPUT [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest ts_init_subtest "pipe-max-size" echo -n | $TS_CMD_PIPESZ --check --stdin >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest ts_init_subtest "exec" echo this_should_be_output_by_cat | $TS_CMD_PIPESZ --check --stdin cat >> $TS_OUTPUT 2>> $TS_ERRLOG [[ $? -ne 0 ]] && ts_logerr "expected success" ts_finalize_subtest set +o pipefail ts_finalize