tools/testing/selftests/gpio/gpio-mockup.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/gpio/gpio-mockup.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/gpio/gpio-mockup.sh- Extension
.sh- Size
- 8562 bytes
- Lines
- 401
- 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.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#!/bin/bash -efu
# SPDX-License-Identifier: GPL-2.0
#exit status
#0: success
#1: fail
#4: skip test - including run as non-root user
BASE=${0%/*}
DEBUGFS=
GPIO_DEBUGFS=
dev_type="cdev"
module="gpio-mockup"
verbose=
full_test=
random=
uapi_opt=
active_opt=
bias_opt=
line_set_pid=
# Kselftest return codes
ksft_fail=1
ksft_skip=4
usage()
{
echo "Usage:"
echo "$0 [-frv] [-t type]"
echo "-f: full test (minimal set run by default)"
echo "-r: test random lines as well as fence posts"
echo "-t: interface type:"
echo " cdev (character device ABI) - default"
echo " cdev_v1 (deprecated character device ABI)"
echo " sysfs (deprecated SYSFS ABI)"
echo "-v: verbose progress reporting"
exit $ksft_fail
}
skip()
{
echo "$*" >&2
echo "GPIO $module test SKIP"
exit $ksft_skip
}
prerequisite()
{
[ $(id -u) -eq 0 ] || skip "must be run as root"
DEBUGFS=$(grep -w debugfs /proc/mounts | cut -f2 -d' ')
[ -d "$DEBUGFS" ] || skip "debugfs is not mounted"
GPIO_DEBUGFS=$DEBUGFS/$module
}
remove_module()
{
modprobe -r -q $module
}
cleanup()
{
set +e
release_line
remove_module
jobs -p | xargs -r kill > /dev/null 2>&1
}
fail()
Annotation
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.