Commit 9ecc4d77 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'linux-kselftest-5.7-rc5' of...

Merge tag 'linux-kselftest-5.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kselftest fixes from Shuah Khan:
 "ftrace test fixes and a fix to kvm Makefile for relocatable
  native/cross builds and installs"

* tag 'linux-kselftest-5.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  selftests: fix kvm relocatable native/cross builds and installs
  selftests/ftrace: Make XFAIL green color
  ftrace/selftest: make unresolved cases cause failure if --fail-unresolved set
  ftrace/selftests: workaround cgroup RT scheduling issues
parents 6e7f2eac 66d69e08
...@@ -17,6 +17,7 @@ echo " -v|--verbose Increase verbosity of test messages" ...@@ -17,6 +17,7 @@ echo " -v|--verbose Increase verbosity of test messages"
echo " -vv Alias of -v -v (Show all results in stdout)" echo " -vv Alias of -v -v (Show all results in stdout)"
echo " -vvv Alias of -v -v -v (Show all commands immediately)" echo " -vvv Alias of -v -v -v (Show all commands immediately)"
echo " --fail-unsupported Treat UNSUPPORTED as a failure" echo " --fail-unsupported Treat UNSUPPORTED as a failure"
echo " --fail-unresolved Treat UNRESOLVED as a failure"
echo " -d|--debug Debug mode (trace all shell commands)" echo " -d|--debug Debug mode (trace all shell commands)"
echo " -l|--logdir <dir> Save logs on the <dir>" echo " -l|--logdir <dir> Save logs on the <dir>"
echo " If <dir> is -, all logs output in console only" echo " If <dir> is -, all logs output in console only"
...@@ -29,8 +30,25 @@ err_ret=1 ...@@ -29,8 +30,25 @@ err_ret=1
# kselftest skip code is 4 # kselftest skip code is 4
err_skip=4 err_skip=4
# cgroup RT scheduling prevents chrt commands from succeeding, which
# induces failures in test wakeup tests. Disable for the duration of
# the tests.
readonly sched_rt_runtime=/proc/sys/kernel/sched_rt_runtime_us
sched_rt_runtime_orig=$(cat $sched_rt_runtime)
setup() {
echo -1 > $sched_rt_runtime
}
cleanup() {
echo $sched_rt_runtime_orig > $sched_rt_runtime
}
errexit() { # message errexit() { # message
echo "Error: $1" 1>&2 echo "Error: $1" 1>&2
cleanup
exit $err_ret exit $err_ret
} }
...@@ -39,6 +57,8 @@ if [ `id -u` -ne 0 ]; then ...@@ -39,6 +57,8 @@ if [ `id -u` -ne 0 ]; then
errexit "this must be run by root user" errexit "this must be run by root user"
fi fi
setup
# Utilities # Utilities
absdir() { # file_path absdir() { # file_path
(cd `dirname $1`; pwd) (cd `dirname $1`; pwd)
...@@ -93,6 +113,10 @@ parse_opts() { # opts ...@@ -93,6 +113,10 @@ parse_opts() { # opts
UNSUPPORTED_RESULT=1 UNSUPPORTED_RESULT=1
shift 1 shift 1
;; ;;
--fail-unresolved)
UNRESOLVED_RESULT=1
shift 1
;;
--logdir|-l) --logdir|-l)
LOG_DIR=$2 LOG_DIR=$2
shift 2 shift 2
...@@ -157,6 +181,7 @@ KEEP_LOG=0 ...@@ -157,6 +181,7 @@ KEEP_LOG=0
DEBUG=0 DEBUG=0
VERBOSE=0 VERBOSE=0
UNSUPPORTED_RESULT=0 UNSUPPORTED_RESULT=0
UNRESOLVED_RESULT=0
STOP_FAILURE=0 STOP_FAILURE=0
# Parse command-line options # Parse command-line options
parse_opts $* parse_opts $*
...@@ -235,6 +260,7 @@ TOTAL_RESULT=0 ...@@ -235,6 +260,7 @@ TOTAL_RESULT=0
INSTANCE= INSTANCE=
CASENO=0 CASENO=0
testcase() { # testfile testcase() { # testfile
CASENO=$((CASENO+1)) CASENO=$((CASENO+1))
desc=`grep "^#[ \t]*description:" $1 | cut -f2 -d:` desc=`grep "^#[ \t]*description:" $1 | cut -f2 -d:`
...@@ -260,7 +286,7 @@ eval_result() { # sigval ...@@ -260,7 +286,7 @@ eval_result() { # sigval
$UNRESOLVED) $UNRESOLVED)
prlog " [${color_blue}UNRESOLVED${color_reset}]" prlog " [${color_blue}UNRESOLVED${color_reset}]"
UNRESOLVED_CASES="$UNRESOLVED_CASES $CASENO" UNRESOLVED_CASES="$UNRESOLVED_CASES $CASENO"
return 1 # this is a kind of bug.. something happened. return $UNRESOLVED_RESULT # depends on use case
;; ;;
$UNTESTED) $UNTESTED)
prlog " [${color_blue}UNTESTED${color_reset}]" prlog " [${color_blue}UNTESTED${color_reset}]"
...@@ -273,7 +299,7 @@ eval_result() { # sigval ...@@ -273,7 +299,7 @@ eval_result() { # sigval
return $UNSUPPORTED_RESULT # depends on use case return $UNSUPPORTED_RESULT # depends on use case
;; ;;
$XFAIL) $XFAIL)
prlog " [${color_red}XFAIL${color_reset}]" prlog " [${color_green}XFAIL${color_reset}]"
XFAILED_CASES="$XFAILED_CASES $CASENO" XFAILED_CASES="$XFAILED_CASES $CASENO"
return 0 return 0
;; ;;
...@@ -406,5 +432,7 @@ prlog "# of unsupported: " `echo $UNSUPPORTED_CASES | wc -w` ...@@ -406,5 +432,7 @@ prlog "# of unsupported: " `echo $UNSUPPORTED_CASES | wc -w`
prlog "# of xfailed: " `echo $XFAILED_CASES | wc -w` prlog "# of xfailed: " `echo $XFAILED_CASES | wc -w`
prlog "# of undefined(test bug): " `echo $UNDEFINED_CASES | wc -w` prlog "# of undefined(test bug): " `echo $UNDEFINED_CASES | wc -w`
cleanup
# if no error, return 0 # if no error, return 0
exit $TOTAL_RESULT exit $TOTAL_RESULT
...@@ -5,8 +5,34 @@ all: ...@@ -5,8 +5,34 @@ all:
top_srcdir = ../../../.. top_srcdir = ../../../..
KSFT_KHDR_INSTALL := 1 KSFT_KHDR_INSTALL := 1
# For cross-builds to work, UNAME_M has to map to ARCH and arch specific
# directories and targets in this Makefile. "uname -m" doesn't map to
# arch specific sub-directory names.
#
# UNAME_M variable to used to run the compiles pointing to the right arch
# directories and build the right targets for these supported architectures.
#
# TEST_GEN_PROGS and LIBKVM are set using UNAME_M variable.
# LINUX_TOOL_ARCH_INCLUDE is set using ARCH variable.
#
# x86_64 targets are named to include x86_64 as a suffix and directories
# for includes are in x86_64 sub-directory. s390x and aarch64 follow the
# same convention. "uname -m" doesn't result in the correct mapping for
# s390x and aarch64.
#
# No change necessary for x86_64
UNAME_M := $(shell uname -m) UNAME_M := $(shell uname -m)
# Set UNAME_M for arm64 compile/install to work
ifeq ($(ARCH),arm64)
UNAME_M := aarch64
endif
# Set UNAME_M s390x compile/install to work
ifeq ($(ARCH),s390)
UNAME_M := s390x
endif
LIBKVM = lib/assert.c lib/elf.c lib/io.c lib/kvm_util.c lib/sparsebit.c lib/test_util.c LIBKVM = lib/assert.c lib/elf.c lib/io.c lib/kvm_util.c lib/sparsebit.c lib/test_util.c
LIBKVM_x86_64 = lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c LIBKVM_x86_64 = lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c
LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c
...@@ -53,7 +79,7 @@ LIBKVM += $(LIBKVM_$(UNAME_M)) ...@@ -53,7 +79,7 @@ LIBKVM += $(LIBKVM_$(UNAME_M))
INSTALL_HDR_PATH = $(top_srcdir)/usr INSTALL_HDR_PATH = $(top_srcdir)/usr
LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/ LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/
LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include
LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/x86/include LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH)/include
CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \ CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \
-fno-stack-protector -fno-PIE -I$(LINUX_TOOL_INCLUDE) \ -fno-stack-protector -fno-PIE -I$(LINUX_TOOL_INCLUDE) \
-I$(LINUX_TOOL_ARCH_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude \ -I$(LINUX_TOOL_ARCH_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude \
...@@ -84,6 +110,7 @@ $(LIBKVM_OBJ): $(OUTPUT)/%.o: %.c ...@@ -84,6 +110,7 @@ $(LIBKVM_OBJ): $(OUTPUT)/%.o: %.c
$(OUTPUT)/libkvm.a: $(LIBKVM_OBJ) $(OUTPUT)/libkvm.a: $(LIBKVM_OBJ)
$(AR) crs $@ $^ $(AR) crs $@ $^
x := $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
all: $(STATIC_LIBS) all: $(STATIC_LIBS)
$(TEST_GEN_PROGS): $(STATIC_LIBS) $(TEST_GEN_PROGS): $(STATIC_LIBS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment