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

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

Pull kselftest updates from Shuah Khan:
"This update consists of:

- important fixes for build failures and clean target related
warnings to address regressions introduced in commit 88baa78d1f31
("selftests: remove duplicated all and clean target")

- several minor spelling fixes in and log messages and comment
blocks.

- Enabling configs for better test coverage in ftrace, vm, and
cpufreq tests.

- .gitignore changes"

* tag 'linux-kselftest-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (26 commits)
selftests: x86: add missing executables to .gitignore
selftests: watchdog: accept multiple params on command line
selftests: create cpufreq kconfig fragments
selftests: x86: override clean in lib.mk to fix warnings
selftests: sync: override clean in lib.mk to fix warnings
selftests: splice: override clean in lib.mk to fix warnings
selftests: gpio: fix clean target to remove all generated files and dirs
selftests: add gpio generated files to .gitignore
selftests: powerpc: override clean in lib.mk to fix warnings
selftests: gpio: override clean in lib.mk to fix warnings
selftests: futex: override clean in lib.mk to fix warnings
selftests: lib.mk: define CLEAN macro to allow Makefiles to override clean
selftests: splice: fix clean target to not remove default_file_splice_read.sh
selftests: gpio: add config fragment for gpio-mockup
selftests: breakpoints: allow to cross-compile for aarch64/arm64
selftests/Makefile: Add missed PHONY targets
selftests/vm/run_vmtests: Fix wrong comment
selftests/Makefile: Add missed closing `"` in comment
selftests/vm/run_vmtests: Polish output text
selftests/timers: fix spelling mistake: "Asynchronous"
...

+124 -68
+4
tools/testing/selftests/.gitignore
··· 1 1 kselftest 2 + gpiogpio-event-mon 3 + gpiogpio-hammer 4 + gpioinclude/ 5 + gpiolsgpio
+2 -2
tools/testing/selftests/Makefile
··· 39 39 TARGETS += zram 40 40 #Please keep the TARGETS list alphabetically sorted 41 41 # Run "make quicktest=1 run_tests" or 42 - # "make quicktest=1 kselftest from top level Makefile 42 + # "make quicktest=1 kselftest" from top level Makefile 43 43 44 44 TARGETS_HOTPLUG = cpu-hotplug 45 45 TARGETS_HOTPLUG += memory-hotplug ··· 133 133 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\ 134 134 done; 135 135 136 - .PHONY: install 136 + .PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean
+1 -1
tools/testing/selftests/breakpoints/Makefile
··· 5 5 ifeq ($(ARCH),x86) 6 6 TEST_GEN_PROGS := breakpoint_test 7 7 endif 8 - ifeq ($(ARCH),aarch64) 8 + ifneq (,$(filter $(ARCH),aarch64 arm64)) 9 9 TEST_GEN_PROGS := breakpoint_test_arm64 10 10 endif 11 11
+15
tools/testing/selftests/cpufreq/config
··· 1 + CONFIG_CPU_FREQ=y 2 + CONFIG_CPU_FREQ_STAT=y 3 + CONFIG_CPU_FREQ_GOV_POWERSAVE=y 4 + CONFIG_CPU_FREQ_GOV_USERSPACE=y 5 + CONFIG_CPU_FREQ_GOV_ONDEMAND=y 6 + CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 7 + CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y 8 + CONFIG_DEBUG_RT_MUTEXES=y 9 + CONFIG_DEBUG_PI_LIST=y 10 + CONFIG_DEBUG_SPINLOCK=y 11 + CONFIG_DEBUG_MUTEXES=y 12 + CONFIG_DEBUG_LOCK_ALLOC=y 13 + CONFIG_PROVE_LOCKING=y 14 + CONFIG_LOCKDEP=y 15 + CONFIG_DEBUG_ATOMIC_SLEEP=y
+1
tools/testing/selftests/ftrace/config
··· 1 + CONFIG_KPROBES=y 1 2 CONFIG_FTRACE=y
+1 -1
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc
··· 26 26 test $X2 = $X3 27 27 test 0x$X3 = $3 28 28 29 - B4=`printf "%x" $4` 29 + B4=`printf "%02x" $4` 30 30 B3=`echo -n $X3 | tail -c 3 | head -c 2` 31 31 test $B3 = $B4 32 32 }
+5 -4
tools/testing/selftests/futex/Makefile
··· 8 8 9 9 all: 10 10 for DIR in $(SUBDIRS); do \ 11 - BUILD_TARGET=$$OUTPUT/$$DIR; \ 11 + BUILD_TARGET=$(OUTPUT)/$$DIR; \ 12 12 mkdir $$BUILD_TARGET -p; \ 13 13 make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\ 14 14 done ··· 22 22 install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) 23 23 24 24 @for SUBDIR in $(SUBDIRS); do \ 25 - BUILD_TARGET=$$OUTPUT/$$SUBDIR; \ 25 + BUILD_TARGET=$(OUTPUT)/$$SUBDIR; \ 26 26 mkdir $$BUILD_TARGET -p; \ 27 27 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$SUBDIR INSTALL_PATH=$(INSTALL_PATH)/$$SUBDIR install; \ 28 28 done; ··· 32 32 echo "./run.sh" 33 33 endef 34 34 35 - clean: 35 + override define CLEAN 36 36 for DIR in $(SUBDIRS); do \ 37 - BUILD_TARGET=$$OUTPUT/$$DIR; \ 37 + BUILD_TARGET=$(OUTPUT)/$$DIR; \ 38 38 mkdir $$BUILD_TARGET -p; \ 39 39 make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\ 40 40 done 41 + endef
+9 -2
tools/testing/selftests/gpio/Makefile
··· 2 2 TEST_PROGS := gpio-mockup.sh 3 3 TEST_FILES := gpio-mockup-sysfs.sh $(BINARIES) 4 4 BINARIES := gpio-mockup-chardev 5 + EXTRA_PROGS := ../gpiogpio-event-mon ../gpiogpio-hammer ../gpiolsgpio 6 + EXTRA_DIRS := ../gpioinclude/ 7 + EXTRA_OBJS := ../gpiogpio-event-mon-in.o ../gpiogpio-event-mon.o 8 + EXTRA_OBJS += ../gpiogpio-hammer-in.o ../gpiogpio-utils.o ../gpiolsgpio-in.o 9 + EXTRA_OBJS += ../gpiolsgpio.o 5 10 6 11 include ../lib.mk 7 12 8 13 all: $(BINARIES) 9 14 10 - clean: 11 - $(RM) $(BINARIES) 15 + override define CLEAN 16 + $(RM) $(BINARIES) $(EXTRA_PROGS) $(EXTRA_OBJS) 17 + $(RM) -r $(EXTRA_DIRS) 18 + endef 12 19 13 20 CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ 14 21 LDLIBS += -lmount -I/usr/include/libmount
+2
tools/testing/selftests/gpio/config
··· 1 + CONFIG_GPIOLIB=y 2 + CONFIG_GPIO_MOCKUP=m
+5 -1
tools/testing/selftests/lib.mk
··· 51 51 emit_tests: 52 52 $(EMIT_TESTS) 53 53 54 - clean: 54 + define CLEAN 55 55 $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN) 56 + endef 57 + 58 + clean: 59 + $(CLEAN) 56 60 57 61 $(OUTPUT)/%:%.c 58 62 $(LINK.c) $^ $(LDLIBS) -o $@
+3
tools/testing/selftests/lib/config
··· 1 + CONFIG_TEST_PRINTF=m 2 + CONFIG_TEST_BITMAP=m 3 + CONFIG_PRIME_NUMBERS=m
+2 -1
tools/testing/selftests/powerpc/Makefile
··· 60 60 done; 61 61 endef 62 62 63 - clean: 63 + override define CLEAN 64 64 @for TARGET in $(SUB_DIRS); do \ 65 65 BUILD_TARGET=$(OUTPUT)/$$TARGET; \ 66 66 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \ 67 67 done; 68 68 rm -f tags 69 + endef 69 70 70 71 tags: 71 72 find . -name '*.c' -o -name '*.h' | xargs ctags
+1 -2
tools/testing/selftests/splice/Makefile
··· 4 4 5 5 include ../lib.mk 6 6 7 - clean: 8 - rm -fr $(TEST_PROGS) $(EXTRA) 7 + EXTRA_CLEAN := $(EXTRA)
+1 -2
tools/testing/selftests/sync/Makefile
··· 20 20 21 21 sync_test: $(OBJS) $(TESTS) 22 22 23 - clean: 24 - $(RM) sync_test $(OBJS) $(TESTS) 23 + EXTRA_CLEAN := sync_test $(OBJS) $(TESTS)
+1 -1
tools/testing/selftests/timers/clocksource-switch.c
··· 159 159 } 160 160 161 161 162 - printf("Running Asyncrhonous Switching Tests...\n"); 162 + printf("Running Asynchronous Switching Tests...\n"); 163 163 pid = fork(); 164 164 if (!pid) 165 165 return run_tests(60);
+1
tools/testing/selftests/vm/config
··· 1 + CONFIG_SYSVIPC=y 1 2 CONFIG_USERFAULTFD=y
+1 -1
tools/testing/selftests/vm/map_hugetlb.c
··· 62 62 void *addr; 63 63 int ret; 64 64 65 - addr = mmap(ADDR, LENGTH, PROTECTION, FLAGS, 0, 0); 65 + addr = mmap(ADDR, LENGTH, PROTECTION, FLAGS, -1, 0); 66 66 if (addr == MAP_FAILED) { 67 67 perror("mmap"); 68 68 exit(1);
+6 -6
tools/testing/selftests/vm/mlock2-tests.c
··· 293 293 unsigned long page_size = getpagesize(); 294 294 295 295 map = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, 296 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 296 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 297 297 if (map == MAP_FAILED) { 298 298 perror("test_mlock_locked mmap"); 299 299 goto out; ··· 402 402 unsigned long page_size = getpagesize(); 403 403 404 404 map = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, 405 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 405 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 406 406 if (map == MAP_FAILED) { 407 407 perror("test_mlock_locked mmap"); 408 408 goto out; ··· 445 445 uint64_t page1_flags, page2_flags; 446 446 447 447 map = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, 448 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 448 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 449 449 if (map == MAP_FAILED) { 450 450 perror("test_mlock_locked mmap"); 451 451 goto out; ··· 492 492 unsigned long page_size = getpagesize(); 493 493 494 494 map = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, 495 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 495 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 496 496 497 497 if (map == MAP_FAILED) { 498 498 perror("test_munlockall mmap"); ··· 518 518 munmap(map, 2 * page_size); 519 519 520 520 map = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, 521 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 521 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 522 522 523 523 if (map == MAP_FAILED) { 524 524 perror("test_munlockall second mmap"); ··· 573 573 struct vm_boundaries page3; 574 574 575 575 map = mmap(NULL, 3 * page_size, PROT_READ | PROT_WRITE, 576 - MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); 576 + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); 577 577 if (map == MAP_FAILED) { 578 578 perror("mmap()"); 579 579 return ret;
+1 -1
tools/testing/selftests/vm/on-fault-limit.c
··· 26 26 } 27 27 28 28 map = mmap(NULL, 2 * lims.rlim_max, PROT_READ | PROT_WRITE, 29 - MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, 0, 0); 29 + MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0); 30 30 if (map != MAP_FAILED) 31 31 printf("mmap should have failed, but didn't\n"); 32 32 else {
+13 -13
tools/testing/selftests/vm/run_vmtests
··· 49 49 mkdir $mnt 50 50 mount -t hugetlbfs none $mnt 51 51 52 - echo "--------------------" 52 + echo "---------------------" 53 53 echo "running hugepage-mmap" 54 - echo "--------------------" 54 + echo "---------------------" 55 55 ./hugepage-mmap 56 56 if [ $? -ne 0 ]; then 57 57 echo "[FAIL]" ··· 77 77 echo $shmmax > /proc/sys/kernel/shmmax 78 78 echo $shmall > /proc/sys/kernel/shmall 79 79 80 - echo "--------------------" 80 + echo "-------------------" 81 81 echo "running map_hugetlb" 82 - echo "--------------------" 82 + echo "-------------------" 83 83 ./map_hugetlb 84 84 if [ $? -ne 0 ]; then 85 85 echo "[FAIL]" ··· 92 92 echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" 93 93 echo " hugetlb regression testing." 94 94 95 - echo "--------------------" 95 + echo "-------------------" 96 96 echo "running userfaultfd" 97 - echo "--------------------" 97 + echo "-------------------" 98 98 ./userfaultfd anon 128 32 99 99 if [ $? -ne 0 ]; then 100 100 echo "[FAIL]" ··· 103 103 echo "[PASS]" 104 104 fi 105 105 106 - echo "----------------------------" 106 + echo "---------------------------" 107 107 echo "running userfaultfd_hugetlb" 108 - echo "----------------------------" 109 - # 258MB total huge pages == 128MB src and 128MB dst 108 + echo "---------------------------" 109 + # 256MB total huge pages == 128MB src and 128MB dst 110 110 ./userfaultfd hugetlb 128 32 $mnt/ufd_test_file 111 111 if [ $? -ne 0 ]; then 112 112 echo "[FAIL]" ··· 116 116 fi 117 117 rm -f $mnt/ufd_test_file 118 118 119 - echo "----------------------------" 119 + echo "-------------------------" 120 120 echo "running userfaultfd_shmem" 121 - echo "----------------------------" 121 + echo "-------------------------" 122 122 ./userfaultfd shmem 128 32 123 123 if [ $? -ne 0 ]; then 124 124 echo "[FAIL]" ··· 143 143 echo "[PASS]" 144 144 fi 145 145 146 - echo "--------------------" 146 + echo "----------------------" 147 147 echo "running on-fault-limit" 148 - echo "--------------------" 148 + echo "----------------------" 149 149 sudo -u nobody ./on-fault-limit 150 150 if [ $? -ne 0 ]; then 151 151 echo "[FAIL]"
+1 -1
tools/testing/selftests/vm/thuge-gen.c
··· 146 146 147 147 before = read_free(size); 148 148 map = mmap(NULL, size*NUM_PAGES, PROT_READ|PROT_WRITE, 149 - MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB|flags, 0, 0); 149 + MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB|flags, -1, 0); 150 150 151 151 if (map == (char *)-1) err("mmap"); 152 152 memset(map, 0xff, size*NUM_PAGES);
+34 -27
tools/testing/selftests/watchdog/watchdog-test.c
··· 24 24 static void keep_alive(void) 25 25 { 26 26 int dummy; 27 + int ret; 27 28 28 - printf("."); 29 - ioctl(fd, WDIOC_KEEPALIVE, &dummy); 29 + ret = ioctl(fd, WDIOC_KEEPALIVE, &dummy); 30 + if (!ret) 31 + printf("."); 30 32 } 31 33 32 34 /* ··· 53 51 int flags; 54 52 unsigned int ping_rate = 1; 55 53 int ret; 54 + int i; 56 55 57 56 setbuf(stdout, NULL); 58 57 ··· 64 61 exit(-1); 65 62 } 66 63 67 - if (argc > 1) { 68 - if (!strncasecmp(argv[1], "-d", 2)) { 69 - flags = WDIOS_DISABLECARD; 70 - ioctl(fd, WDIOC_SETOPTIONS, &flags); 71 - printf("Watchdog card disabled.\n"); 72 - goto end; 73 - } else if (!strncasecmp(argv[1], "-e", 2)) { 74 - flags = WDIOS_ENABLECARD; 75 - ioctl(fd, WDIOC_SETOPTIONS, &flags); 76 - printf("Watchdog card enabled.\n"); 77 - goto end; 78 - } else if (!strncasecmp(argv[1], "-t", 2) && argv[2]) { 79 - flags = atoi(argv[2]); 80 - ioctl(fd, WDIOC_SETTIMEOUT, &flags); 81 - printf("Watchdog timeout set to %u seconds.\n", flags); 82 - goto end; 83 - } else if (!strncasecmp(argv[1], "-p", 2) && argv[2]) { 84 - ping_rate = strtoul(argv[2], NULL, 0); 85 - printf("Watchdog ping rate set to %u seconds.\n", ping_rate); 86 - } else { 87 - printf("-d to disable, -e to enable, -t <n> to set " \ 88 - "the timeout,\n-p <n> to set the ping rate, and \n"); 89 - printf("run by itself to tick the card.\n"); 90 - goto end; 91 - } 64 + for (i = 1; i < argc; i++) { 65 + if (!strncasecmp(argv[i], "-d", 2)) { 66 + flags = WDIOS_DISABLECARD; 67 + ret = ioctl(fd, WDIOC_SETOPTIONS, &flags); 68 + if (!ret) 69 + printf("Watchdog card disabled.\n"); 70 + } else if (!strncasecmp(argv[i], "-e", 2)) { 71 + flags = WDIOS_ENABLECARD; 72 + ret = ioctl(fd, WDIOC_SETOPTIONS, &flags); 73 + if (!ret) 74 + printf("Watchdog card enabled.\n"); 75 + } else if (!strncasecmp(argv[i], "-t", 2) && argv[2]) { 76 + flags = atoi(argv[i + 1]); 77 + ret = ioctl(fd, WDIOC_SETTIMEOUT, &flags); 78 + if (!ret) 79 + printf("Watchdog timeout set to %u seconds.\n", flags); 80 + i++; 81 + } else if (!strncasecmp(argv[i], "-p", 2) && argv[2]) { 82 + ping_rate = strtoul(argv[i + 1], NULL, 0); 83 + printf("Watchdog ping rate set to %u seconds.\n", ping_rate); 84 + i++; 85 + } else { 86 + printf("-d to disable, -e to enable, -t <n> to set " 87 + "the timeout,\n-p <n> to set the ping rate, and "); 88 + printf("run by itself to tick the card.\n"); 89 + printf("Parameters are parsed left-to-right in real-time.\n"); 90 + printf("Example: %s -d -t 10 -p 5 -e\n", argv[0]); 91 + goto end; 92 + } 92 93 } 93 94 94 95 printf("Watchdog Ticking Away!\n");
+13
tools/testing/selftests/x86/.gitignore
··· 1 1 *_32 2 2 *_64 3 + single_step_syscall 4 + sysret_ss_attrs 5 + syscall_nt 6 + ptrace_syscall 7 + test_mremap_vdso 8 + check_initial_reg_state 9 + sigreturn 10 + ldt_gdt 11 + iopl 12 + mpx-mini-test 13 + ioperm 14 + protection_keys 15 + test_vdso
+1 -2
tools/testing/selftests/x86/Makefile
··· 40 40 41 41 all_64: $(BINARIES_64) 42 42 43 - clean: 44 - $(RM) $(BINARIES_32) $(BINARIES_64) 43 + EXTRA_CLEAN := $(BINARIES_32) $(BINARIES_64) 45 44 46 45 $(BINARIES_32): $(OUTPUT)/%_32: %.c 47 46 $(CC) -m32 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl -lm