Commit 2b28601d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'linux-kselftest-5.2-rc3' of...

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

Pull Kselftest fixes from Shuah Khan:

 - Alexandre Belloni's fixes to rtc regressions introduced in kselftest
   Makefile test run output refactoring work from Kees Cook.

 - ftrace test checkbashisms fixes from Masami Hiramatsu

* tag 'linux-kselftest-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  selftests: rtc: rtctest: specify timeouts
  selftests/harness: Allow test to configure timeout
  selftests/ftrace: Add checkbashisms meta-testcase
  selftests/ftrace: Make a script checkbashisms clean
parents 9e82b4a9 eff82a26
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -318,6 +318,7 @@ run_test() { # testfile
    local testlog=/proc/self/fd/1
  fi
  export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
  export FTRACETEST_ROOT=$TOP_DIR
  echo "execute$INSTANCE: "$1 > $testlog
  SIG_RESULT=0
  if [ $VERBOSE -eq -1 ]; then
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
# description: Kprobe dynamic event with function tracer

[ -f kprobe_events ] || exit_unsupported # this is configurable
grep function available_tracers || exit_unsupported # this is configurable
grep "function" available_tracers || exit_unsupported # this is configurable

# prepare
echo nop > current_tracer
+21 −0
Original line number Diff line number Diff line
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Meta-selftest: Checkbashisms

if [ ! -f $FTRACETEST_ROOT/ftracetest ]; then
  echo "Hmm, we can not find ftracetest"
  exit_unresolved
fi

if ! which checkbashisms > /dev/null 2>&1 ; then
  echo "No checkbashisms found. skipped."
  exit_unresolved
fi

checkbashisms $FTRACETEST_ROOT/ftracetest
checkbashisms $FTRACETEST_ROOT/test.d/functions
for t in $(find $FTRACETEST_ROOT/test.d -name \*.tc); do
  checkbashisms $t
done

exit 0
+12 −5
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@
#include <sys/wait.h>
#include <unistd.h>

#define TEST_TIMEOUT_DEFAULT 30

/* Utilities exposed to the test definitions */
#ifndef TH_LOG_STREAM
@@ -169,7 +170,8 @@
	static void test_name(struct __test_metadata *_metadata); \
	static struct __test_metadata _##test_name##_object = \
		{ .name = "global." #test_name, \
		  .fn = &test_name, .termsig = _signal }; \
		  .fn = &test_name, .termsig = _signal, \
		  .timeout = TEST_TIMEOUT_DEFAULT, }; \
	static void __attribute__((constructor)) _register_##test_name(void) \
	{ \
		__register_test(&_##test_name##_object); \
@@ -280,12 +282,15 @@
 */
/* TODO(wad) register fixtures on dedicated test lists. */
#define TEST_F(fixture_name, test_name) \
	__TEST_F_IMPL(fixture_name, test_name, -1)
	__TEST_F_IMPL(fixture_name, test_name, -1, TEST_TIMEOUT_DEFAULT)

#define TEST_F_SIGNAL(fixture_name, test_name, signal) \
	__TEST_F_IMPL(fixture_name, test_name, signal)
	__TEST_F_IMPL(fixture_name, test_name, signal, TEST_TIMEOUT_DEFAULT)

#define __TEST_F_IMPL(fixture_name, test_name, signal) \
#define TEST_F_TIMEOUT(fixture_name, test_name, timeout) \
	__TEST_F_IMPL(fixture_name, test_name, -1, timeout)

#define __TEST_F_IMPL(fixture_name, test_name, signal, tmout) \
	static void fixture_name##_##test_name( \
		struct __test_metadata *_metadata, \
		FIXTURE_DATA(fixture_name) *self); \
@@ -307,6 +312,7 @@
		.name = #fixture_name "." #test_name, \
		.fn = &wrapper_##fixture_name##_##test_name, \
		.termsig = signal, \
		.timeout = tmout, \
	 }; \
	static void __attribute__((constructor)) \
			_register_##fixture_name##_##test_name(void) \
@@ -632,6 +638,7 @@ struct __test_metadata {
	int termsig;
	int passed;
	int trigger; /* extra handler after the evaluation */
	int timeout;
	__u8 step;
	bool no_print; /* manual trigger when TH_LOG_STREAM is not available */
	struct __test_metadata *prev, *next;
@@ -696,7 +703,7 @@ void __run_test(struct __test_metadata *t)
	t->passed = 1;
	t->trigger = 0;
	printf("[ RUN      ] %s\n", t->name);
	alarm(30);
	alarm(t->timeout);
	child_pid = fork();
	if (child_pid < 0) {
		printf("ERROR SPAWNING TEST CHILD\n");
+3 −3
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ TEST_F(rtc, date_read) {
	       rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
}

TEST_F(rtc, uie_read) {
TEST_F_TIMEOUT(rtc, uie_read, NUM_UIE + 2) {
	int i, rc, irq = 0;
	unsigned long data;

@@ -211,7 +211,7 @@ TEST_F(rtc, alarm_wkalm_set) {
	ASSERT_EQ(new, secs);
}

TEST_F(rtc, alarm_alm_set_minute) {
TEST_F_TIMEOUT(rtc, alarm_alm_set_minute, 65) {
	struct timeval tv = { .tv_sec = 62 };
	unsigned long data;
	struct rtc_time tm;
@@ -264,7 +264,7 @@ TEST_F(rtc, alarm_alm_set_minute) {
	ASSERT_EQ(new, secs);
}

TEST_F(rtc, alarm_wkalm_set_minute) {
TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) {
	struct timeval tv = { .tv_sec = 62 };
	struct rtc_wkalrm alarm = { 0 };
	struct rtc_time tm;