Currently, the KUnit debugfs logs have a few issues:
1. The results of parameterized tests don’t show up
2. The order of the lines in the logs is sometimes incorrect
3. There are extra new lines in the logs
This patch series aims to fix these issues.
This is an example of a debugfs log prior to these fixes:
KTAP version 1
# Subtest: kunit_status
1..2
# kunit_status: pass:2 fail:0 skip:0 total:2
# Totals: pass:2 fail:0 skip:0 total:2
ok 1 kunit_status_set_failure_test
ok 2 kunit_status_mark_skipped_test
ok 1 kunit_status
Note there is an extra line and a few of the lines are out of order.
This is the same debugfs log after the fixes:
KTAP version 1
# Subtest: kunit_status
1..2
ok 1 kunit_status_set_failure_test
ok 2 kunit_status_mark_skipped_test
# kunit_status: pass:2 fail:0 skip:0 total:2
# Totals: pass:2 fail:0 skip:0 total:2
ok 4 kunit_status
This is now equivalent to the regular KTAP output for the kunit_status
test.
Thanks!
-Rae
Rae Moar (3):
kunit: fix bug in debugfs logs of parameterized tests
kunit: fix bug in the order of lines in debugfs logs
kunit: fix bug of extra newline characters in debugfs logs
include/kunit/test.h | 2 +-
lib/kunit/debugfs.c | 13 ++++++++-----
lib/kunit/kunit-test.c | 36 ++++++++++++++++++++++++------------
lib/kunit/test.c | 36 ++++++++++++++++++++++--------------
4 files changed, 55 insertions(+), 32 deletions(-)
base-commit: 766f4f2514d2d18bcbd60a058188fb502dea5ddf
--
2.39.1.456.gfc5497dd1b-goog
Rather than trying to guess which implementation of "echo" to run with
support for "-ne" options, use "printf" instead of "echo -ne". It
handles escape characters as a standard feature and it is widespread
among modern shells.
Reported-by: "kernelci.org bot" <bot(a)kernelci.org>
Suggested-by: David Laight <David.Laight(a)ACULAB.COM>
Fixes: 3297a4df805d ("kselftests: Enable the echo command to print newlines in Makefile")
Fixes: 79c16b1120fe ("selftests: find echo binary to use -ne options")
Signed-off-by: Guillaume Tucker <guillaume.tucker(a)collabora.com>
---
Notes:
v2: use printf insead of $(which echo)
v3: rebase on top of fix with $(which echo)
tools/testing/selftests/Makefile | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index 9619d0f3b2ff..06578963f4f1 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -234,11 +234,10 @@ ifdef INSTALL_PATH
@# While building kselftest-list.text skip also non-existent TARGET dirs:
@# they could be the result of a build failure and should NOT be
@# included in the generated runlist.
- ECHO=`which echo`; \
for TARGET in $(TARGETS); do \
BUILD_TARGET=$$BUILD/$$TARGET; \
- [ ! -d $(INSTALL_PATH)/$$TARGET ] && $$ECHO "Skipping non-existent dir: $$TARGET" && continue; \
- $$ECHO -ne "Emit Tests for $$TARGET\n"; \
+ [ ! -d $(INSTALL_PATH)/$$TARGET ] && printf "Skipping non-existent dir: $$TARGET\n" && continue; \
+ printf "Emit Tests for $$TARGET\n"; \
$(MAKE) -s --no-print-directory OUTPUT=$$BUILD_TARGET COLLECTION=$$TARGET \
-C $$TARGET emit_tests >> $(TEST_LIST); \
done;
--
2.30.2