Skip to content

Commit 3fdfcd9

Browse files
committed
Merge tag 'linux_kselftest-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan: "A fix to kselftest harness to prevent infinite loop triggered in an assert in FIXTURE_TEARDOWN and a fix to a problem seen in being able to stop subsystem-enable tests when sched events are being traced" * tag 'linux_kselftest-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/harness: Prevent infinite loop due to Assert in FIXTURE_TEARDOWN selftests/ftrace: Limit length in subsystem-enable tests
2 parents 0bbac3f + 72d7cb5 commit 3fdfcd9

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ echo 'sched:*' > set_event
1818

1919
yield
2020

21-
count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
21+
count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
2222
if [ $count -lt 3 ]; then
2323
fail "at least fork, exec and exit events should be recorded"
2424
fi
@@ -29,7 +29,7 @@ echo 1 > events/sched/enable
2929

3030
yield
3131

32-
count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
32+
count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
3333
if [ $count -lt 3 ]; then
3434
fail "at least fork, exec and exit events should be recorded"
3535
fi
@@ -40,7 +40,7 @@ echo 0 > events/sched/enable
4040

4141
yield
4242

43-
count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
43+
count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
4444
if [ $count -ne 0 ]; then
4545
fail "any of scheduler events should not be recorded"
4646
fi

tools/testing/selftests/kselftest_harness.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@
383383
FIXTURE_DATA(fixture_name) self; \
384384
pid_t child = 1; \
385385
int status = 0; \
386+
bool jmp = false; \
386387
memset(&self, 0, sizeof(FIXTURE_DATA(fixture_name))); \
387388
if (setjmp(_metadata->env) == 0) { \
388389
/* Use the same _metadata. */ \
@@ -399,8 +400,10 @@
399400
_metadata->exit_code = KSFT_FAIL; \
400401
} \
401402
} \
403+
else \
404+
jmp = true; \
402405
if (child == 0) { \
403-
if (_metadata->setup_completed && !_metadata->teardown_parent) \
406+
if (_metadata->setup_completed && !_metadata->teardown_parent && !jmp) \
404407
fixture_name##_teardown(_metadata, &self, variant->data); \
405408
_exit(0); \
406409
} \

0 commit comments

Comments
 (0)