diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-01-13 14:09:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-01-13 14:09:14 -0500 |
commit | e7a823be2adc2c8617bead1376194a399143e4ed (patch) | |
tree | b325d2cadab135a4e4d2ebb725487bb136fc7b51 /tools | |
parent | 613d4cefbbb39d3c37f3f22150263900ba11a3e3 (diff) | |
parent | f5db310d77ef1742e40bfc303b8625584c55f9e3 (diff) |
Merge tag 'linux-kselftest-3.19-rc-5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan:
"This update contains three patches to fix one compile error, and two
run-time bugs. One of them fixes infinite loop on ARM"
* tag 'linux-kselftest-3.19-rc-5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
selftests/vm: fix link error for transhuge-stress test
tools: testing: selftests: mq_perf_tests: Fix infinite loop on ARM
selftests/exec: allow shell return code of 126
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/exec/execveat.c | 19 | ||||
-rw-r--r-- | tools/testing/selftests/mqueue/mq_perf_tests.c | 3 | ||||
-rw-r--r-- | tools/testing/selftests/vm/Makefile | 2 |
3 files changed, 15 insertions, 9 deletions
diff --git a/tools/testing/selftests/exec/execveat.c b/tools/testing/selftests/exec/execveat.c index d273624c93a6..e238c9559caf 100644 --- a/tools/testing/selftests/exec/execveat.c +++ b/tools/testing/selftests/exec/execveat.c | |||
@@ -62,7 +62,7 @@ static int _check_execveat_fail(int fd, const char *path, int flags, | |||
62 | } | 62 | } |
63 | 63 | ||
64 | static int check_execveat_invoked_rc(int fd, const char *path, int flags, | 64 | static int check_execveat_invoked_rc(int fd, const char *path, int flags, |
65 | int expected_rc) | 65 | int expected_rc, int expected_rc2) |
66 | { | 66 | { |
67 | int status; | 67 | int status; |
68 | int rc; | 68 | int rc; |
@@ -98,9 +98,10 @@ static int check_execveat_invoked_rc(int fd, const char *path, int flags, | |||
98 | child, status); | 98 | child, status); |
99 | return 1; | 99 | return 1; |
100 | } | 100 | } |
101 | if (WEXITSTATUS(status) != expected_rc) { | 101 | if ((WEXITSTATUS(status) != expected_rc) && |
102 | printf("[FAIL] (child %d exited with %d not %d)\n", | 102 | (WEXITSTATUS(status) != expected_rc2)) { |
103 | child, WEXITSTATUS(status), expected_rc); | 103 | printf("[FAIL] (child %d exited with %d not %d nor %d)\n", |
104 | child, WEXITSTATUS(status), expected_rc, expected_rc2); | ||
104 | return 1; | 105 | return 1; |
105 | } | 106 | } |
106 | printf("[OK]\n"); | 107 | printf("[OK]\n"); |
@@ -109,7 +110,7 @@ static int check_execveat_invoked_rc(int fd, const char *path, int flags, | |||
109 | 110 | ||
110 | static int check_execveat(int fd, const char *path, int flags) | 111 | static int check_execveat(int fd, const char *path, int flags) |
111 | { | 112 | { |
112 | return check_execveat_invoked_rc(fd, path, flags, 99); | 113 | return check_execveat_invoked_rc(fd, path, flags, 99, 99); |
113 | } | 114 | } |
114 | 115 | ||
115 | static char *concat(const char *left, const char *right) | 116 | static char *concat(const char *left, const char *right) |
@@ -192,9 +193,15 @@ static int check_execveat_pathmax(int dot_dfd, const char *src, int is_script) | |||
192 | * Execute as a long pathname relative to ".". If this is a script, | 193 | * Execute as a long pathname relative to ".". If this is a script, |
193 | * the interpreter will launch but fail to open the script because its | 194 | * the interpreter will launch but fail to open the script because its |
194 | * name ("/dev/fd/5/xxx....") is bigger than PATH_MAX. | 195 | * name ("/dev/fd/5/xxx....") is bigger than PATH_MAX. |
196 | * | ||
197 | * The failure code is usually 127 (POSIX: "If a command is not found, | ||
198 | * the exit status shall be 127."), but some systems give 126 (POSIX: | ||
199 | * "If the command name is found, but it is not an executable utility, | ||
200 | * the exit status shall be 126."), so allow either. | ||
195 | */ | 201 | */ |
196 | if (is_script) | 202 | if (is_script) |
197 | fail += check_execveat_invoked_rc(dot_dfd, longpath, 0, 127); | 203 | fail += check_execveat_invoked_rc(dot_dfd, longpath, 0, |
204 | 127, 126); | ||
198 | else | 205 | else |
199 | fail += check_execveat(dot_dfd, longpath, 0); | 206 | fail += check_execveat(dot_dfd, longpath, 0); |
200 | 207 | ||
diff --git a/tools/testing/selftests/mqueue/mq_perf_tests.c b/tools/testing/selftests/mqueue/mq_perf_tests.c index 94dae65eea41..8519e9ee97e3 100644 --- a/tools/testing/selftests/mqueue/mq_perf_tests.c +++ b/tools/testing/selftests/mqueue/mq_perf_tests.c | |||
@@ -536,10 +536,9 @@ int main(int argc, char *argv[]) | |||
536 | { | 536 | { |
537 | struct mq_attr attr; | 537 | struct mq_attr attr; |
538 | char *option, *next_option; | 538 | char *option, *next_option; |
539 | int i, cpu; | 539 | int i, cpu, rc; |
540 | struct sigaction sa; | 540 | struct sigaction sa; |
541 | poptContext popt_context; | 541 | poptContext popt_context; |
542 | char rc; | ||
543 | void *retval; | 542 | void *retval; |
544 | 543 | ||
545 | main_thread = pthread_self(); | 544 | main_thread = pthread_self(); |
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile index 4c4b1f631ecf..077828c889f1 100644 --- a/tools/testing/selftests/vm/Makefile +++ b/tools/testing/selftests/vm/Makefile | |||
@@ -7,7 +7,7 @@ BINARIES += transhuge-stress | |||
7 | 7 | ||
8 | all: $(BINARIES) | 8 | all: $(BINARIES) |
9 | %: %.c | 9 | %: %.c |
10 | $(CC) $(CFLAGS) -o $@ $^ | 10 | $(CC) $(CFLAGS) -o $@ $^ -lrt |
11 | 11 | ||
12 | run_tests: all | 12 | run_tests: all |
13 | @/bin/sh ./run_vmtests || (echo "vmtests: [FAIL]"; exit 1) | 13 | @/bin/sh ./run_vmtests || (echo "vmtests: [FAIL]"; exit 1) |