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

Pull kselftest updates from Shuah Khan:

 - TAP13 framework API and converting tests to TAP13 continues. A few
   more tests are converted and kselftest common RUN_TESTS in lib.mk is
   enhanced to print TAP13 to cover test shell scripts that won't be
   able to use kselftest API.

 - Several fixes to existing tests to not fail in unsupported cases.
   This has been an ongoing work based on the feedback from stable
   release kselftest users.

 - A new watchdog test and much needed cleanups to the existing tests
   from Eugeniu Rosca.

 - Changes to kselftest common lib.mk framework to make RUN_TESTS a
   function to be called from individual test make files to run stress
   and destructive sub-tests.

* tag 'linux-kselftest-4.14-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (41 commits)
  selftests: Enhance kselftest_harness.h to print which assert failed
  selftests: lib.mk: change RUN_TESTS to print messages in TAP13 format
  selftests: change lib.mk RUN_TESTS to take test list as an argument
  selftests: lib.mk: suppress "cd" output from run_tests target
  selftests: kselftest framework: change skip exit code to 0
  selftests/timers: make loop consistent with array size
  selftests: timers: remove rtctest_setdate from run_destructive_tests
  selftests: timers: Fix run_destructive_tests target to handle skipped tests
  kselftests: timers: leap-a-day: Change default arguments to help test runs
  selftests: timers: drop support for !KTEST case
  rtc: rtctest: Improve support detection
  selftests/cpu-hotplug: Skip test when there is only one online cpu
  selftests/cpu-hotplug: exit with failure when test occured unexpected behaviors
  selftests: futex: convert test to use ksft TAP13 framework
  selftests: capabilities: convert error output to TAP13 ksft framework
  selftests: memfd: Align STACK_SIZE for ARM AArch64 system
  selftests: warn if failure is due to lack of executable bit
  selftests: kselftest framework: add error counter
  selftests: capabilities: convert the test to use TAP13 ksft framework
  selftests: capabilities: fix to run Non-root +ia, sgidroot => i test
  ...
This commit is contained in:
Linus Torvalds
2017-09-08 15:11:20 -07:00
47 changed files with 510 additions and 483 deletions

View File

@@ -394,9 +394,11 @@ int main(int argc, char *argv[])
}
}
printf("%s: Test requeue functionality\n", basename(argv[0]));
printf("\tArguments: broadcast=%d locked=%d owner=%d timeout=%ldns\n",
broadcast, locked, owner, timeout_ns);
ksft_print_header();
ksft_print_msg("%s: Test requeue functionality\n", basename(argv[0]));
ksft_print_msg(
"\tArguments: broadcast=%d locked=%d owner=%d timeout=%ldns\n",
broadcast, locked, owner, timeout_ns);
/*
* FIXME: unit_test is obsolete now that we parse options and the

View File

@@ -78,7 +78,8 @@ int main(int argc, char *argv[])
}
}
printf("%s: Detect mismatched requeue_pi operations\n",
ksft_print_header();
ksft_print_msg("%s: Detect mismatched requeue_pi operations\n",
basename(argv[0]));
if (pthread_create(&child, NULL, blocking_child, NULL)) {

View File

@@ -143,9 +143,10 @@ int main(int argc, char *argv[])
}
}
printf("%s: Test signal handling during requeue_pi\n",
ksft_print_header();
ksft_print_msg("%s: Test signal handling during requeue_pi\n",
basename(argv[0]));
printf("\tArguments: <none>\n");
ksft_print_msg("\tArguments: <none>\n");
sa.sa_handler = handle_signal;
sigemptyset(&sa.sa_mask);

View File

@@ -97,8 +97,10 @@ int main(int argc, char **argv)
}
}
printf("%s: Test the futex value of private file mappings in FUTEX_WAIT\n",
basename(argv[0]));
ksft_print_header();
ksft_print_msg(
"%s: Test the futex value of private file mappings in FUTEX_WAIT\n",
basename(argv[0]));
ret = pthread_create(&thr, NULL, thr_futex_wait, NULL);
if (ret < 0) {

View File

@@ -68,9 +68,10 @@ int main(int argc, char *argv[])
}
}
printf("%s: Block on a futex and wait for timeout\n",
ksft_print_header();
ksft_print_msg("%s: Block on a futex and wait for timeout\n",
basename(argv[0]));
printf("\tArguments: timeout=%ldns\n", timeout_ns);
ksft_print_msg("\tArguments: timeout=%ldns\n", timeout_ns);
/* initialize timeout */
to.tv_sec = 0;

View File

@@ -99,7 +99,8 @@ int main(int argc, char **argv)
exit(1);
}
printf("%s: Test the uninitialized futex value in FUTEX_WAIT\n",
ksft_print_header();
ksft_print_msg("%s: Test the uninitialized futex value in FUTEX_WAIT\n",
basename(argv[0]));

View File

@@ -64,7 +64,8 @@ int main(int argc, char *argv[])
}
}
printf("%s: Test the unexpected futex value in FUTEX_WAIT\n",
ksft_print_header();
ksft_print_msg("%s: Test the unexpected futex value in FUTEX_WAIT\n",
basename(argv[0]));
info("Calling futex_wait on f1: %u @ %p with val=%u\n", f1, &f1, f1+1);

View File

@@ -109,22 +109,20 @@ void log_verbosity(int level)
*/
void print_result(const char *test_name, int ret)
{
const char *result = "Unknown return code";
switch (ret) {
case RET_PASS:
ksft_inc_pass_cnt();
result = PASS;
break;
ksft_test_result_pass("%s\n", test_name);
ksft_print_cnts();
return;
case RET_ERROR:
result = ERROR;
break;
ksft_test_result_error("%s\n", test_name);
ksft_print_cnts();
return;
case RET_FAIL:
ksft_inc_fail_cnt();
result = FAIL;
break;
ksft_test_result_fail("%s\n", test_name);
ksft_print_cnts();
return;
}
printf("selftests: %s [%s]\n", test_name, result);
}
/* log level macros */