From 5aff0e3c6e9844eec7901ad12ef104215a1f7496 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" <ldv@altlinux.org> Date: Wed, 7 Dec 2016 18:05:28 +0000 Subject: [PATCH] tests: introduce require_min_kernel_version_or_skip function * tests/init.sh (kernel_version_code, require_min_kernel_version_or_skip): New functions. * tests/threads-execve.test: Use require_min_kernel_version_or_skip. --- tests/init.sh | 26 ++++++++++++++++++++++++++ tests/threads-execve.test | 6 +----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/tests/init.sh b/tests/init.sh index 03b7692e..3fe5a886 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -216,6 +216,32 @@ run_strace_match_diff() rm -f "$EXP" } +# Print kernel version code. +# usage: kernel_version_code $(uname -r) +kernel_version_code() +{ + ( + set -f + IFS=. + set -- $1 + v1="${1%%[!0-9]*}" && [ -n "$v1" ] || v1=0 + v2="${2%%[!0-9]*}" && [ -n "$v2" ] || v2=0 + v3="${3%%[!0-9]*}" && [ -n "$v3" ] || v3=0 + echo "$(($v1 * 65536 + $v2 * 256 + $v3))" + ) +} + +# Usage: require_min_kernel_version_or_skip 3.0 +require_min_kernel_version_or_skip() +{ + local uname_r + uname_r="$(uname -r)" + + [ "$(kernel_version_code "$uname_r")" -ge \ + "$(kernel_version_code "$1")" ] || + skip_ "the kernel release $uname_r is not $1 or newer" +} + check_prog cat check_prog rm diff --git a/tests/threads-execve.test b/tests/threads-execve.test index 36381e7c..4a771467 100755 --- a/tests/threads-execve.test +++ b/tests/threads-execve.test @@ -31,11 +31,7 @@ # Check that PTRACE_EVENT_EXEC support in kernel is good enough. # The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. -uname_r="$(uname -r)" -case "$uname_r" in - 3.[2-9]*|3.1[0-9]*|[4-9].*|[123][0-9]*) ;; - *) skip_ "the kernel release $uname_r is not 3.1 or newer" ;; -esac +require_min_kernel_version_or_skip 3.1 check_prog diff run_prog > /dev/null -- 2.40.0