mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 18:30:06 +00:00
linux-kselftest-5.2-rc3
This Kselftest update for Linux 5.2-rc3 consists of - 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 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAlzumDsACgkQCwJExA0N QxymNQ/8DwDmpfkLCBpedHIy9kxY7PiJGNwQYkVMPBxAt/qY7c0BS46TnKxc6ndH Ra/7Shm7nTbit9Upcap5s4Gtbjf62PW0FVVAZgMZe+2Raq80QV8ANDHOFz8KF7R1 iaDWyW8a5cP56fuzSMmJlpHPWw1G3tYAvjJwqKuTPegYrHpkKdeGpEVm4gyIoS3t k7z4RuGwouRh3e9Bfks+Q1TZQCH8RbA5W1riA4XM9/iXi5wqp0Ib27sMYbH1eA4s Gqg4lLFHfC2Pdo2ASOlC9aQAHgE23pCQFFFgXaY2wl00CgThXhhZ1JiJmdF4PryW z59+3+Ncyr9di7ZL6H+Po/vin1b0902FDx0K4pOqSwr1yQ+54tmSfjylbQRpdnA2 GpswgqFuqCF5SpOTikjl3oiNSi2BStHaLmkEV8XU8LkTe4Px4TSTZ/3JVgJ6PBAL 55mMgD41W1OIQtK6LqLfqfRz7Uj5xdfVcobAigE9IEYLBB/PBnwo/xyW8pSxXoDO 80WiVUf9XHxSU1Mdmb516540thxvS4+TK8CPLSCZiqLUDY1facsNH/KYzkBU7Upt eJdQxpCI55ORQCRQbfcbuIOrddZFWAjZ5PBieQvYv4W7O1wEcK3hTPl75aff5bIS UlAt7aW8iLwU+xQ4byMtfvUdzVh2WJv7/jNvjcQCipXXD1PoyAg= =zYD6 -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
2b28601d62
5 changed files with 38 additions and 9 deletions
|
@ -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
|
||||
|
|
|
@ -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
tools/testing/selftests/ftrace/test.d/selftest/bashisms.tc
Normal file
21
tools/testing/selftests/ftrace/test.d/selftest/bashisms.tc
Normal file
|
@ -0,0 +1,21 @@
|
|||
#!/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
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue