Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kselftest: Add basic test for probing the rust sample modules

Add new basic kselftest that checks if the available rust sample modules
can be added and removed correctly.

Signed-off-by: Laura Nao <laura.nao@collabora.com>
Reviewed-by: Sergio Gonzalez Collado <sergio.collado@gmail.com>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Laura Nao and committed by
Shuah Khan
5d94da7f 539cd3f4

+52
+1
MAINTAINERS
··· 19095 19095 F: rust/ 19096 19096 F: samples/rust/ 19097 19097 F: scripts/*rust* 19098 + F: tools/testing/selftests/rust/ 19098 19099 K: \b(?i:rust)\b 19099 19100 19100 19101 RXRPC SOCKETS (AF_RXRPC)
+1
tools/testing/selftests/Makefile
··· 79 79 TARGETS += rlimits 80 80 TARGETS += rseq 81 81 TARGETS += rtc 82 + TARGETS += rust 82 83 TARGETS += seccomp 83 84 TARGETS += sgx 84 85 TARGETS += sigaltstack
+4
tools/testing/selftests/rust/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + TEST_PROGS += test_probe_samples.sh 3 + 4 + include ../lib.mk
+5
tools/testing/selftests/rust/config
··· 1 + CONFIG_RUST=y 2 + CONFIG_SAMPLES=y 3 + CONFIG_SAMPLES_RUST=y 4 + CONFIG_SAMPLE_RUST_MINIMAL=m 5 + CONFIG_SAMPLE_RUST_PRINT=m
+41
tools/testing/selftests/rust/test_probe_samples.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0 3 + # 4 + # Copyright (c) 2023 Collabora Ltd 5 + # 6 + # This script tests whether the rust sample modules can 7 + # be added and removed correctly. 8 + # 9 + DIR="$(dirname "$(readlink -f "$0")")" 10 + 11 + KTAP_HELPERS="${DIR}/../kselftest/ktap_helpers.sh" 12 + if [ -e "$KTAP_HELPERS" ]; then 13 + source "$KTAP_HELPERS" 14 + else 15 + echo "$KTAP_HELPERS file not found [SKIP]" 16 + exit 4 17 + fi 18 + 19 + rust_sample_modules=("rust_minimal" "rust_print") 20 + 21 + ktap_print_header 22 + 23 + for sample in "${rust_sample_modules[@]}"; do 24 + if ! /sbin/modprobe -n -q "$sample"; then 25 + ktap_skip_all "module $sample is not found in /lib/modules/$(uname -r)" 26 + exit "$KSFT_SKIP" 27 + fi 28 + done 29 + 30 + ktap_set_plan "${#rust_sample_modules[@]}" 31 + 32 + for sample in "${rust_sample_modules[@]}"; do 33 + if /sbin/modprobe -q "$sample"; then 34 + /sbin/modprobe -q -r "$sample" 35 + ktap_test_pass "$sample" 36 + else 37 + ktap_test_fail "$sample" 38 + fi 39 + done 40 + 41 + ktap_finished