Create ksft_print_dbg_msg() so testers can enable extra debug messages
when running a test with the flag -d.

Signed-off-by: André Almeida <andrealm...@igalia.com>
---
 tools/testing/selftests/kselftest.h         | 13 +++++++++++++
 tools/testing/selftests/kselftest_harness.h | 13 +++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/kselftest.h 
b/tools/testing/selftests/kselftest.h
index 
c3b6d2604b1e486af5a224a11386f75fe0a83495..c1851125de9cfdcdf3b11249572ebfb0751727f6
 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -104,6 +104,7 @@ struct ksft_count {
 
 static struct ksft_count ksft_cnt;
 static unsigned int ksft_plan;
+static bool ksft_debug_enabled;
 
 static inline unsigned int ksft_test_num(void)
 {
@@ -175,6 +176,18 @@ static inline __printf(1, 2) void ksft_print_msg(const 
char *msg, ...)
        va_end(args);
 }
 
+static inline void ksft_print_dbg_msg(const char *msg, ...)
+{
+       va_list args;
+
+       if (!ksft_debug_enabled)
+               return;
+
+       va_start(args, msg);
+       ksft_print_msg(msg, args);
+       va_end(args);
+}
+
 static inline void ksft_perror(const char *msg)
 {
        ksft_print_msg("%s: %s (%d)\n", msg, strerror(errno), errno);
diff --git a/tools/testing/selftests/kselftest_harness.h 
b/tools/testing/selftests/kselftest_harness.h
index 
2925e47db995d7197ed1f55bd9cc657669df9bd3..ffefd2704ca8f60f329b5d85870253fe26c61b52
 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -1091,7 +1091,7 @@ static int test_harness_argv_check(int argc, char **argv)
 {
        int opt;
 
-       while ((opt = getopt(argc, argv, "hlF:f:V:v:t:T:r:")) != -1) {
+       while ((opt = getopt(argc, argv, "dhlF:f:V:v:t:T:r:")) != -1) {
                switch (opt) {
                case 'f':
                case 'F':
@@ -1104,12 +1104,16 @@ static int test_harness_argv_check(int argc, char 
**argv)
                case 'l':
                        test_harness_list_tests();
                        return KSFT_SKIP;
+               case 'd':
+                       ksft_debug_enabled = true;
+                       break;
                case 'h':
                default:
                        fprintf(stderr,
-                               "Usage: %s [-h|-l] [-t|-T|-v|-V|-f|-F|-r 
name]\n"
+                               "Usage: %s [-h|-l|-d] [-t|-T|-v|-V|-f|-F|-r 
name]\n"
                                "\t-h       print help\n"
                                "\t-l       list all tests\n"
+                               "\t-d       enable debug prints\n"
                                "\n"
                                "\t-t name  include test\n"
                                "\t-T name  exclude test\n"
@@ -1142,8 +1146,9 @@ static bool test_enabled(int argc, char **argv,
        int opt;
 
        optind = 1;
-       while ((opt = getopt(argc, argv, "F:f:V:v:t:T:r:")) != -1) {
-               has_positive |= islower(opt);
+       while ((opt = getopt(argc, argv, "dF:f:V:v:t:T:r:")) != -1) {
+               if (opt != 'd')
+                       has_positive |= islower(opt);
 
                switch (tolower(opt)) {
                case 't':

-- 
2.49.0


Reply via email to