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:
@@ -1,5 +1,4 @@
|
||||
BUILD_FLAGS = -DKTEST
|
||||
CFLAGS += -O3 -Wl,-no-as-needed -Wall $(BUILD_FLAGS)
|
||||
CFLAGS += -O3 -Wl,-no-as-needed -Wall
|
||||
LDFLAGS += -lrt -lpthread -lm
|
||||
|
||||
# these are all "safe" tests that don't modify
|
||||
@@ -7,9 +6,11 @@ LDFLAGS += -lrt -lpthread -lm
|
||||
TEST_GEN_PROGS = posix_timers nanosleep nsleep-lat set-timer-lat mqueue-lat \
|
||||
inconsistency-check raw_skew threadtest rtctest
|
||||
|
||||
TEST_GEN_PROGS_EXTENDED = alarmtimer-suspend valid-adjtimex adjtick change_skew \
|
||||
DESTRUCTIVE_TESTS = alarmtimer-suspend valid-adjtimex adjtick change_skew \
|
||||
skew_consistency clocksource-switch freq-step leap-a-day \
|
||||
leapcrash set-tai set-2038 set-tz rtctest_setdate
|
||||
leapcrash set-tai set-2038 set-tz
|
||||
|
||||
TEST_GEN_PROGS_EXTENDED = $(DESTRUCTIVE_TESTS) rtctest_setdate
|
||||
|
||||
|
||||
include ../lib.mk
|
||||
@@ -18,16 +19,4 @@ include ../lib.mk
|
||||
# and may modify the system time or trigger
|
||||
# other behavior like suspend
|
||||
run_destructive_tests: run_tests
|
||||
./alarmtimer-suspend
|
||||
./valid-adjtimex
|
||||
./adjtick
|
||||
./change_skew
|
||||
./skew_consistency
|
||||
./clocksource-switch
|
||||
./freq-step
|
||||
./leap-a-day -s -i 10
|
||||
./leapcrash
|
||||
./set-tz
|
||||
./set-tai
|
||||
./set-2038
|
||||
|
||||
$(call RUN_TESTS, $(DESTRUCTIVE_TESTS))
|
||||
|
@@ -23,18 +23,7 @@
|
||||
#include <sys/timex.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CLOCK_MONOTONIC_RAW 4
|
||||
|
||||
|
@@ -28,18 +28,7 @@
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CLOCK_REALTIME 0
|
||||
#define CLOCK_MONOTONIC 1
|
||||
|
@@ -28,18 +28,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/timex.h>
|
||||
#include <time.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000LL
|
||||
|
||||
|
@@ -34,18 +34,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int get_clocksources(char list[][30])
|
||||
@@ -61,7 +50,7 @@ int get_clocksources(char list[][30])
|
||||
|
||||
close(fd);
|
||||
|
||||
for (i = 0; i < 30; i++)
|
||||
for (i = 0; i < 10; i++)
|
||||
list[i][0] = '\0';
|
||||
|
||||
head = buf;
|
||||
|
@@ -28,18 +28,7 @@
|
||||
#include <sys/timex.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CALLS_PER_LOOP 64
|
||||
#define NSEC_PER_SEC 1000000000ULL
|
||||
|
@@ -48,18 +48,7 @@
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000ULL
|
||||
#define CLOCK_TAI 11
|
||||
@@ -190,18 +179,18 @@ int main(int argc, char **argv)
|
||||
struct sigevent se;
|
||||
struct sigaction act;
|
||||
int signum = SIGRTMAX;
|
||||
int settime = 0;
|
||||
int settime = 1;
|
||||
int tai_time = 0;
|
||||
int insert = 1;
|
||||
int iterations = -1;
|
||||
int iterations = 10;
|
||||
int opt;
|
||||
|
||||
/* Process arguments */
|
||||
while ((opt = getopt(argc, argv, "sti:")) != -1) {
|
||||
switch (opt) {
|
||||
case 's':
|
||||
printf("Setting time to speed up testing\n");
|
||||
settime = 1;
|
||||
case 'w':
|
||||
printf("Only setting leap-flag, not changing time. It could take up to a day for leap to trigger.\n");
|
||||
settime = 0;
|
||||
break;
|
||||
case 'i':
|
||||
iterations = atoi(optarg);
|
||||
@@ -210,9 +199,10 @@ int main(int argc, char **argv)
|
||||
tai_time = 1;
|
||||
break;
|
||||
default:
|
||||
printf("Usage: %s [-s] [-i <iterations>]\n", argv[0]);
|
||||
printf(" -s: Set time to right before leap second each iteration\n");
|
||||
printf(" -i: Number of iterations\n");
|
||||
printf("Usage: %s [-w] [-i <iterations>]\n", argv[0]);
|
||||
printf(" -w: Set flag and wait for leap second each iteration");
|
||||
printf(" (default sets time to right before leapsecond)\n");
|
||||
printf(" -i: Number of iterations (-1 = infinite, default is 10)\n");
|
||||
printf(" -t: Print TAI time\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
@@ -22,20 +22,7 @@
|
||||
#include <sys/timex.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* clear NTP time_status & time_state */
|
||||
int clear_time_state(void)
|
||||
|
@@ -29,18 +29,7 @@
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <mqueue.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000ULL
|
||||
|
||||
|
@@ -27,18 +27,7 @@
|
||||
#include <sys/timex.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000ULL
|
||||
|
||||
|
@@ -24,18 +24,7 @@
|
||||
#include <sys/timex.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000ULL
|
||||
|
||||
|
@@ -25,19 +25,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/timex.h>
|
||||
#include <time.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#define CLOCK_MONOTONIC_RAW 4
|
||||
#define NSEC_PER_SEC 1000000000LL
|
||||
|
@@ -221,6 +221,11 @@ test_READ:
|
||||
/* Read the current alarm settings */
|
||||
retval = ioctl(fd, RTC_ALM_READ, &rtc_tm);
|
||||
if (retval == -1) {
|
||||
if (errno == EINVAL) {
|
||||
fprintf(stderr,
|
||||
"\n...EINVAL reading current alarm setting.\n");
|
||||
goto test_PIE;
|
||||
}
|
||||
perror("RTC_ALM_READ ioctl");
|
||||
exit(errno);
|
||||
}
|
||||
@@ -231,7 +236,7 @@ test_READ:
|
||||
/* Enable alarm interrupts */
|
||||
retval = ioctl(fd, RTC_AIE_ON, 0);
|
||||
if (retval == -1) {
|
||||
if (errno == EINVAL) {
|
||||
if (errno == EINVAL || errno == EIO) {
|
||||
fprintf(stderr,
|
||||
"\n...Alarm IRQs not supported.\n");
|
||||
goto test_PIE;
|
||||
|
@@ -27,18 +27,7 @@
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000LL
|
||||
|
||||
|
@@ -23,18 +23,7 @@
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
int set_tai(int offset)
|
||||
{
|
||||
|
@@ -28,18 +28,7 @@
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CLOCK_REALTIME 0
|
||||
#define CLOCK_MONOTONIC 1
|
||||
|
@@ -23,18 +23,7 @@
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
int set_tz(int min, int dst)
|
||||
{
|
||||
|
@@ -35,18 +35,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000LL
|
||||
|
||||
|
@@ -21,19 +21,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <sys/time.h>
|
||||
#include <pthread.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* serializes shared list access */
|
||||
pthread_mutex_t list_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
@@ -32,18 +32,7 @@
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#ifdef KTEST
|
||||
#include "../kselftest.h"
|
||||
#else
|
||||
static inline int ksft_exit_pass(void)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
static inline int ksft_exit_fail(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NSEC_PER_SEC 1000000000LL
|
||||
#define USEC_PER_SEC 1000000LL
|
||||
|
Reference in New Issue
Block a user