Skip to content

Commit 225d3b6

Browse files
committed
Merge tag 'linux-kselftest-4.14-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan: "This update consists of: - fixes to several existing tests - a test for regression introduced by b9470c2 ("inet: kill smallest_size and smallest_port") - seccomp support for glibc 2.26 siginfo_t.h - fixes to kselftest framework and tests to run make O=dir use-case - fixes to silence unnecessary test output to de-clutter test results" * tag 'linux-kselftest-4.14-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (28 commits) selftests: timers: set-timer-lat: Fix hang when testing unsupported alarms selftests: timers: set-timer-lat: fix hang when std out/err are redirected selftests/memfd: correct run_tests.sh permission selftests/seccomp: Support glibc 2.26 siginfo_t.h selftests: futex: Makefile: fix for loops in targets to run silently selftests: Makefile: fix for loops in targets to run silently selftests: mqueue: Use full path to run tests from Makefile selftests: futex: copy sub-dir test scripts for make O=dir run selftests: lib.mk: copy test scripts and test files for make O=dir run selftests: sync: kselftest and kselftest-clean fail for make O=dir case selftests: sync: use TEST_CUSTOM_PROGS instead of TEST_PROGS selftests: lib.mk: add TEST_CUSTOM_PROGS to allow custom test run/install selftests: watchdog: fix to use TEST_GEN_PROGS and remove clean selftests: lib.mk: fix test executable status check to use full path selftests: Makefile: clear LDFLAGS for make O=dir use-case selftests: lib.mk: kselftest and kselftest-clean fail for make O=dir case Makefile: kselftest and kselftest-clean fail for make O=dir case selftests/net: msg_zerocopy enable build with older kernel headers selftests: actually run the various net selftests selftest: add a reuseaddr test ...
2 parents 7031b64 + eefd95e commit 225d3b6

File tree

21 files changed

+247
-67
lines changed

21 files changed

+247
-67
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,11 +1172,11 @@ headers_check: headers_install
11721172

11731173
PHONY += kselftest
11741174
kselftest:
1175-
$(Q)$(MAKE) -C tools/testing/selftests run_tests
1175+
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
11761176

11771177
PHONY += kselftest-clean
11781178
kselftest-clean:
1179-
$(Q)$(MAKE) -C tools/testing/selftests clean
1179+
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests clean
11801180

11811181
PHONY += kselftest-merge
11821182
kselftest-merge:

tools/testing/selftests/Makefile

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ override LDFLAGS =
5252
override MAKEFLAGS =
5353
endif
5454

55+
ifneq ($(KBUILD_SRC),)
56+
override LDFLAGS =
57+
endif
58+
5559
BUILD := $(O)
5660
ifndef BUILD
5761
BUILD := $(KBUILD_OUTPUT)
@@ -62,32 +66,32 @@ endif
6266

6367
export BUILD
6468
all:
65-
for TARGET in $(TARGETS); do \
69+
@for TARGET in $(TARGETS); do \
6670
BUILD_TARGET=$$BUILD/$$TARGET; \
6771
mkdir $$BUILD_TARGET -p; \
6872
make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
6973
done;
7074

7175
run_tests: all
72-
for TARGET in $(TARGETS); do \
76+
@for TARGET in $(TARGETS); do \
7377
BUILD_TARGET=$$BUILD/$$TARGET; \
7478
make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
7579
done;
7680

7781
hotplug:
78-
for TARGET in $(TARGETS_HOTPLUG); do \
82+
@for TARGET in $(TARGETS_HOTPLUG); do \
7983
BUILD_TARGET=$$BUILD/$$TARGET; \
8084
make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
8185
done;
8286

8387
run_hotplug: hotplug
84-
for TARGET in $(TARGETS_HOTPLUG); do \
88+
@for TARGET in $(TARGETS_HOTPLUG); do \
8589
BUILD_TARGET=$$BUILD/$$TARGET; \
8690
make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
8791
done;
8892

8993
clean_hotplug:
90-
for TARGET in $(TARGETS_HOTPLUG); do \
94+
@for TARGET in $(TARGETS_HOTPLUG); do \
9195
BUILD_TARGET=$$BUILD/$$TARGET; \
9296
make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
9397
done;
@@ -103,7 +107,7 @@ install:
103107
ifdef INSTALL_PATH
104108
@# Ask all targets to install their files
105109
mkdir -p $(INSTALL_PATH)
106-
for TARGET in $(TARGETS); do \
110+
@for TARGET in $(TARGETS); do \
107111
BUILD_TARGET=$$BUILD/$$TARGET; \
108112
make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
109113
done;
@@ -128,7 +132,7 @@ else
128132
endif
129133

130134
clean:
131-
for TARGET in $(TARGETS); do \
135+
@for TARGET in $(TARGETS); do \
132136
BUILD_TARGET=$$BUILD/$$TARGET; \
133137
make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
134138
done;

tools/testing/selftests/bpf/bpf_util.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void)
1212
unsigned int start, end, possible_cpus = 0;
1313
char buff[128];
1414
FILE *fp;
15+
int n;
1516

1617
fp = fopen(fcpu, "r");
1718
if (!fp) {
@@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void)
2021
}
2122

2223
while (fgets(buff, sizeof(buff), fp)) {
23-
if (sscanf(buff, "%u-%u", &start, &end) == 2) {
24-
possible_cpus = start == 0 ? end + 1 : 0;
25-
break;
24+
n = sscanf(buff, "%u-%u", &start, &end);
25+
if (n == 0) {
26+
printf("Failed to retrieve # possible CPUs!\n");
27+
exit(1);
28+
} else if (n == 1) {
29+
end = start;
2630
}
31+
possible_cpus = start == 0 ? end + 1 : 0;
32+
break;
2733
}
28-
2934
fclose(fp);
30-
if (!possible_cpus) {
31-
printf("Failed to retrieve # possible CPUs!\n");
32-
exit(1);
33-
}
3435

3536
return possible_cpus;
3637
}

tools/testing/selftests/breakpoints/Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
uname_M := $(shell uname -m 2>/dev/null || echo not)
33
ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
44

5+
TEST_GEN_PROGS := step_after_suspend_test
6+
57
ifeq ($(ARCH),x86)
6-
TEST_GEN_PROGS := breakpoint_test
8+
TEST_GEN_PROGS += breakpoint_test
79
endif
810
ifneq (,$(filter $(ARCH),aarch64 arm64))
9-
TEST_GEN_PROGS := breakpoint_test_arm64
11+
TEST_GEN_PROGS += breakpoint_test_arm64
1012
endif
1113

12-
TEST_GEN_PROGS += step_after_suspend_test
13-
1414
include ../lib.mk
1515

tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/bin/sh
22
# description: Register/unregister many kprobe events
33

4+
[ -f kprobe_events ] || exit_unsupported # this is configurable
5+
46
# ftrace fentry skip size depends on the machine architecture.
57
# Currently HAVE_KPROBES_ON_FTRACE defined on x86 and powerpc64le
68
case `uname -m` in

tools/testing/selftests/futex/Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ TEST_PROGS := run.sh
77
include ../lib.mk
88

99
all:
10-
for DIR in $(SUBDIRS); do \
10+
@for DIR in $(SUBDIRS); do \
1111
BUILD_TARGET=$(OUTPUT)/$$DIR; \
1212
mkdir $$BUILD_TARGET -p; \
1313
make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\
14+
if [ -e $$DIR/$(TEST_PROGS) ]; then
15+
rsync -a $$DIR/$(TEST_PROGS) $$BUILD_TARGET/;
16+
fi
1417
done
1518

1619
override define RUN_TESTS
17-
$(OUTPUT)/run.sh
20+
@cd $(OUTPUT); ./run.sh
1821
endef
1922

2023
override define INSTALL_RULE
@@ -33,7 +36,7 @@ override define EMIT_TESTS
3336
endef
3437

3538
override define CLEAN
36-
for DIR in $(SUBDIRS); do \
39+
@for DIR in $(SUBDIRS); do \
3740
BUILD_TARGET=$(OUTPUT)/$$DIR; \
3841
mkdir $$BUILD_TARGET -p; \
3942
make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\

tools/testing/selftests/intel_pstate/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
CFLAGS := $(CFLAGS) -Wall -D_GNU_SOURCE
22
LDLIBS := $(LDLIBS) -lm
33

4+
ifeq (,$(filter $(ARCH),x86))
45
TEST_GEN_FILES := msr aperf
6+
endif
57

68
TEST_PROGS := run.sh
79

tools/testing/selftests/intel_pstate/run.sh

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@
2929

3030
EVALUATE_ONLY=0
3131

32-
max_cpus=$(($(nproc)-1))
32+
if ! uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ | grep -q x86; then
33+
echo "$0 # Skipped: Test can only run on x86 architectures."
34+
exit 0
35+
fi
3336

34-
# compile programs
35-
gcc aperf.c -Wall -D_GNU_SOURCE -o aperf -lm
36-
[ $? -ne 0 ] && echo "Problem compiling aperf.c." && exit 1
37-
gcc -o msr msr.c -lm
38-
[ $? -ne 0 ] && echo "Problem compiling msr.c." && exit 1
37+
max_cpus=$(($(nproc)-1))
3938

4039
function run_test () {
4140

tools/testing/selftests/lib.mk

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ ifeq (0,$(MAKELEVEL))
66
OUTPUT := $(shell pwd)
77
endif
88

9+
# The following are built by lib.mk common compile rules.
10+
# TEST_CUSTOM_PROGS should be used by tests that require
11+
# custom build rule and prevent common build rule use.
12+
# TEST_PROGS are for test shell scripts.
13+
# TEST_CUSTOM_PROGS and TEST_PROGS will be run by common run_tests
14+
# and install targets. Common clean doesn't touch them.
915
TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS))
16+
TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS_EXTENDED))
1017
TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))
1118

1219
all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
@@ -20,28 +27,39 @@ define RUN_TESTS
2027
test_num=`echo $$test_num+1 | bc`; \
2128
echo "selftests: $$BASENAME_TEST"; \
2229
echo "========================================"; \
23-
if [ ! -x $$BASENAME_TEST ]; then \
30+
if [ ! -x $$TEST ]; then \
2431
echo "selftests: Warning: file $$BASENAME_TEST is not executable, correct this.";\
2532
echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; \
2633
else \
27-
cd `dirname $$TEST` > /dev/null; (./$$BASENAME_TEST && echo "ok 1..$$test_num selftests: $$BASENAME_TEST [PASS]") || echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; cd - > /dev/null;\
34+
cd `dirname $$TEST` > /dev/null; (./$$BASENAME_TEST > /tmp/$$BASENAME_TEST 2>&1 && echo "ok 1..$$test_num selftests: $$BASENAME_TEST [PASS]") || echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; cd - > /dev/null;\
2835
fi; \
2936
done;
3037
endef
3138

3239
run_tests: all
33-
$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_PROGS))
40+
ifneq ($(KBUILD_SRC),)
41+
@if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then
42+
@rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT)
43+
fi
44+
@if [ "X$(TEST_PROGS)" != "X" ]; then
45+
$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS))
46+
else
47+
$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS))
48+
fi
49+
else
50+
$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS))
51+
endif
3452

3553
define INSTALL_RULE
3654
@if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" != "X" ]; then \
3755
mkdir -p ${INSTALL_PATH}; \
3856
echo "rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/"; \
3957
rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/; \
4058
fi
41-
@if [ "X$(TEST_GEN_PROGS)$(TEST_GEN_PROGS_EXTENDED)$(TEST_GEN_FILES)" != "X" ]; then \
59+
@if [ "X$(TEST_GEN_PROGS)$(TEST_CUSTOM_PROGS)$(TEST_GEN_PROGS_EXTENDED)$(TEST_GEN_FILES)" != "X" ]; then \
4260
mkdir -p ${INSTALL_PATH}; \
43-
echo "rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/"; \
44-
rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/; \
61+
echo "rsync -a $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/"; \
62+
rsync -a $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/; \
4563
fi
4664
endef
4765

@@ -53,22 +71,36 @@ else
5371
endif
5472

5573
define EMIT_TESTS
56-
@for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \
74+
@for TEST in $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS); do \
5775
BASENAME_TEST=`basename $$TEST`; \
58-
echo "(./$$BASENAME_TEST && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \
76+
echo "(./$$BASENAME_TEST > /tmp/$$BASENAME_TEST 2>&1 && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \
5977
done;
6078
endef
6179

6280
emit_tests:
6381
$(EMIT_TESTS)
6482

83+
# define if isn't already. It is undefined in make O= case.
84+
ifeq ($(RM),)
85+
RM := rm -f
86+
endif
87+
6588
define CLEAN
6689
$(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN)
6790
endef
6891

6992
clean:
7093
$(CLEAN)
7194

95+
# When make O= with kselftest target from main level
96+
# the following aren't defined.
97+
#
98+
ifneq ($(KBUILD_SRC),)
99+
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
100+
COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
101+
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
102+
endif
103+
72104
$(OUTPUT)/%:%.c
73105
$(LINK.c) $^ $(LDLIBS) -o $@
74106

tools/testing/selftests/memfd/run_tests.sh

100644100755
File mode changed.

tools/testing/selftests/mqueue/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ TEST_GEN_PROGS := mq_open_tests mq_perf_tests
55
include ../lib.mk
66

77
override define RUN_TESTS
8-
@./mq_open_tests /test1 || echo "selftests: mq_open_tests [FAIL]"
9-
@./mq_perf_tests || echo "selftests: mq_perf_tests [FAIL]"
8+
$(OUTPUT)/mq_open_tests /test1 || echo "selftests: mq_open_tests [FAIL]"
9+
$(OUTPUT)//mq_perf_tests || echo "selftests: mq_perf_tests [FAIL]"
1010
endef
1111

1212
override define EMIT_TESTS

tools/testing/selftests/net/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ reuseport_bpf
66
reuseport_bpf_cpu
77
reuseport_bpf_numa
88
reuseport_dualstack
9+
reuseaddr_conflict

tools/testing/selftests/net/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ CFLAGS += -I../../../../usr/include/
55

66
TEST_PROGS := run_netsocktests run_afpackettests test_bpf.sh netdevice.sh rtnetlink.sh
77
TEST_GEN_FILES = socket
8-
TEST_GEN_FILES += psock_fanout psock_tpacket
9-
TEST_GEN_FILES += reuseport_bpf reuseport_bpf_cpu reuseport_bpf_numa
10-
TEST_GEN_FILES += reuseport_dualstack msg_zerocopy
8+
TEST_GEN_FILES += psock_fanout psock_tpacket msg_zerocopy
9+
TEST_GEN_PROGS = reuseport_bpf reuseport_bpf_cpu reuseport_bpf_numa
10+
TEST_GEN_PROGS += reuseport_dualstack reuseaddr_conflict
1111

1212
include ../lib.mk
1313

tools/testing/selftests/net/msg_zerocopy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
#include <unistd.h>
5656

5757
#ifndef SO_EE_ORIGIN_ZEROCOPY
58-
#define SO_EE_ORIGIN_ZEROCOPY SO_EE_ORIGIN_UPAGE
58+
#define SO_EE_ORIGIN_ZEROCOPY 5
5959
#endif
6060

6161
#ifndef SO_ZEROCOPY

tools/testing/selftests/net/netdevice.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ if [ "$(id -u)" -ne 0 ];then
178178
exit 0
179179
fi
180180

181-
ip -Version 2>/dev/null >/dev/null
181+
ip link show 2>/dev/null >/dev/null
182182
if [ $? -ne 0 ];then
183183
echo "SKIP: Could not run test without the ip tool"
184184
exit 0

0 commit comments

Comments
 (0)