lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 13 Aug 2019 08:09:29 +0200
From:   Knut Omang <knut.omang@...cle.com>
To:     linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     linux-doc@...r.kernel.org, linux-kbuild@...r.kernel.org,
        Shuah Khan <shuah@...nel.org>,
        Jonathan Corbet <corbet@....net>,
        Masahiro Yamada <yamada.masahiro@...ionext.com>,
        Michal Marek <michal.lkml@...kovi.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Shreyans Devendra Doshi <0xinfosect0r@...il.com>,
        Alan Maguire <alan.maguire@...cle.com>,
        Brendan Higgins <brendanhiggins@...gle.com>,
        Kevin Hilman <khilman@...libre.com>,
        Hidenori Yamaji <hidenori.yamaji@...y.com>,
        Frank Rowand <frowand.list@...il.com>,
        Timothy Bird <Tim.Bird@...y.com>,
        Luis Chamberlain <mcgrof@...nel.org>,
        "Theodore Ts'o" <tytso@....edu>, Daniel Vetter <daniel@...ll.ch>,
        Stephen Boyd <sboyd@...nel.org>,
        Knut Omang <knut.omang@...cle.com>
Subject: [RFC 14/19] ktf: Internal debugging facilities

Utilities for convenient and runtime enabled/disabled
printk debugging mainly intended for debugging ktf itself and subtle
early issues with execution/running of tests.

ktf_debug.h:     User mode debug function definitions

Signed-off-by: Knut Omang <knut.omang@...cle.com>
---
 tools/testing/selftests/ktf/lib/ktf_debug.cc | 20 +++++++-
 tools/testing/selftests/ktf/lib/ktf_debug.h  | 59 +++++++++++++++++++++-
 2 files changed, 79 insertions(+)
 create mode 100644 tools/testing/selftests/ktf/lib/ktf_debug.cc
 create mode 100644 tools/testing/selftests/ktf/lib/ktf_debug.h

diff --git a/tools/testing/selftests/ktf/lib/ktf_debug.cc b/tools/testing/selftests/ktf/lib/ktf_debug.cc
new file mode 100644
index 0000000..18ff443
--- /dev/null
+++ b/tools/testing/selftests/ktf/lib/ktf_debug.cc
@@ -0,0 +1,20 @@
+/* Copyright (c) 2012 Oracle Corporation. All rights reserved
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+#include "ktf_debug.h"
+#include <stdlib.h>
+
+unsigned long ktf_debug_mask = 0;
+
+
+void ktf_debug_init()
+{
+  ktf_debug_mask = 0;
+  char* dbg_mask_str = getenv("KTF_DEBUG_MASK");
+  if (dbg_mask_str) {
+    ktf_debug_mask = strtol(dbg_mask_str, NULL, 0);
+    log(KTF_INFO_V, "debug mask set to 0x%lx\n", ktf_debug_mask);
+  }
+}
diff --git a/tools/testing/selftests/ktf/lib/ktf_debug.h b/tools/testing/selftests/ktf/lib/ktf_debug.h
new file mode 100644
index 0000000..dc761a4
--- /dev/null
+++ b/tools/testing/selftests/ktf/lib/ktf_debug.h
@@ -0,0 +1,59 @@
+/* Copyright (c) 2012 Oracle Corporation. All rights reserved
+ *    Author: Knut Omang <knut.omang@...cle.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ *
+ * ktf_debug.h: User mode debug function definitions
+ * - intended for test debugging.
+ *
+ * Enabled by setting bits in the environment variable KTF_DEBUG_MASK
+ */
+
+#ifndef _KTF_DEBUG_H
+#define _KTF_DEBUG_H
+#include <time.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <pthread.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+
+extern unsigned long ktf_debug_mask;
+
+
+#define KTF_ERR             0x1
+#define KTF_WARN            0x2
+#define KTF_INFO            0x4
+#define KTF_INFO_V        0x100
+#define KTF_MR           0x2000
+#define KTF_DEBUG       0x10000
+#define KTF_POLL        0x20000
+#define KTF_EVENT       0x40000
+#define KTF_DEBUG_V   0x1000000
+#define KTF_DUMP      0x2000000
+
+/* Call this to initialize the debug logic from
+ * environment KTF_DEBUG_MASK
+ */
+void ktf_debug_init();
+
+#define log(level, format, arg...)		\
+do {\
+  if (level & ktf_debug_mask) {\
+    char _tm[30]; \
+    time_t _tv = time(NULL);\
+    ctime_r(&_tv,_tm);\
+    _tm[24] = '\0';\
+    fprintf(stderr, "%s [%ld] %s: " format, \
+            _tm, (long unsigned int) pthread_self(), __func__, ## arg);     \
+  }\
+} while (0)
+
+#define logs(class, stmt_list) \
+  do {							    \
+    if (ktf_debug_mask & class) { \
+      stmt_list;  \
+    }   \
+  } while (0)
+
+#endif
-- 
git-series 0.9.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ