summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/intel-gpu-tools/igt_test_programs.xml6
-rw-r--r--lib/igt_core.c17
2 files changed, 19 insertions, 4 deletions
diff --git a/docs/reference/intel-gpu-tools/igt_test_programs.xml b/docs/reference/intel-gpu-tools/igt_test_programs.xml
index 970ecb9c..36ad1f35 100644
--- a/docs/reference/intel-gpu-tools/igt_test_programs.xml
+++ b/docs/reference/intel-gpu-tools/igt_test_programs.xml
@@ -35,9 +35,11 @@
</varlistentry>
<varlistentry>
- <term><option>--debug</option></term>
+ <term><option>--debug[=log-domain]</option></term>
<listitem><para>
- print extra debugging information when running tests
+ print extra debugging information when running tests and
+ optionaly only show the messages from the specified log domain
+ (use "application" to specifiy the default application domain)
</para></listitem>
</varlistentry>
diff --git a/lib/igt_core.c b/lib/igt_core.c
index b247a03a..e12b5663 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -228,6 +228,8 @@ enum {
OPT_HELP = 'h'
};
+static char* igt_log_domain_filter;
+
__attribute__((format(printf, 1, 2)))
static void kmsg(const char *format, ...)
#define KERN_EMER "<0>"
@@ -390,7 +392,7 @@ static void print_usage(const char *help_str, bool output_on_stderr)
fprintf(f, "Usage: %s [OPTIONS]\n", command_str);
fprintf(f, " --list-subtests\n"
" --run-subtest <pattern>\n"
- " --debug\n"
+ " --debug[=log-domain]\n"
" --help-description\n"
" --help\n");
if (help_str)
@@ -422,7 +424,7 @@ static int common_init(int argc, char **argv,
{"list-subtests", 0, 0, OPT_LIST_SUBTESTS},
{"run-subtest", 1, 0, OPT_RUN_SUBTEST},
{"help-description", 0, 0, OPT_DESCRIPTION},
- {"debug", 0, 0, OPT_DEBUG},
+ {"debug", optional_argument, 0, OPT_DEBUG},
{"help", 0, 0, OPT_HELP},
{0, 0, 0, 0}
};
@@ -510,6 +512,8 @@ static int common_init(int argc, char **argv,
switch(c) {
case OPT_DEBUG:
igt_log_level = IGT_LOG_DEBUG;
+ if (optarg && strlen(optarg) > 0)
+ igt_log_domain_filter = strdup(optarg);
break;
case OPT_LIST_SUBTESTS:
if (!run_single_subtest)
@@ -1476,6 +1480,15 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
if (igt_log_level > level)
return;
+ if (igt_log_domain_filter) {
+ /* if null domain and filter is not "application", return */
+ if (!domain && strcmp(igt_log_domain_filter, "application"))
+ return;
+ /* else if domain and filter do not match, return */
+ else if (domain && strcmp(igt_log_domain_filter, domain))
+ return;
+ }
+
if (level == IGT_LOG_WARN) {
file = stderr;
fflush(stdout);