tools/testing/selftests/splice/short_splice_read.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/splice/short_splice_read.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/splice/short_splice_read.sh
Extension
.sh
Size
2823 bytes
Lines
134
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Test for mishandling of splice() on pseudofilesystems, which should catch
# bugs like 11990a5bd7e5 ("module: Correctly truncate sysfs sections output")
#
# Since splice fallback was removed as part of the set_fs() rework, many of these
# tests expect to fail now. See https://lore.kernel.org/lkml/202009181443.C2179FB@keescook/
set -e

DIR=$(dirname "$0")

ret=0

expect_success()
{
	title="$1"
	shift

	echo "" >&2
	echo "$title ..." >&2

	set +e
	"$@"
	rc=$?
	set -e

	case "$rc" in
	0)
		echo "ok: $title succeeded" >&2
		;;
	1)
		echo "FAIL: $title should work" >&2
		ret=$(( ret + 1 ))
		;;
	*)
		echo "FAIL: something else went wrong" >&2
		ret=$(( ret + 1 ))
		;;
	esac
}

expect_failure()
{
	title="$1"
	shift

	echo "" >&2
	echo "$title ..." >&2

	set +e
	"$@"
	rc=$?
	set -e

	case "$rc" in
	0)
		echo "FAIL: $title unexpectedly worked" >&2
		ret=$(( ret + 1 ))
		;;
	1)
		echo "ok: $title correctly failed" >&2
		;;
	*)
		echo "FAIL: something else went wrong" >&2
		ret=$(( ret + 1 ))
		;;
	esac
}

Annotation

Implementation Notes