From 0a95c7bd7268c4c97dffec64fa6e08d12cb37a40 Mon Sep 17 00:00:00 2001 From: Walter Karas Date: Wed, 9 Feb 2022 20:19:29 -0600 Subject: [PATCH] Send diags output to stderr when running regression tests. --- include/tscore/Regression.h | 2 ++ src/traffic_server/traffic_server.cc | 3 +++ src/tscore/Diags.cc | 12 ++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/tscore/Regression.h b/include/tscore/Regression.h index 72e65fa2c4b..6c58973817a 100644 --- a/include/tscore/Regression.h +++ b/include/tscore/Regression.h @@ -101,3 +101,5 @@ struct RegressionTest { int rprintf(RegressionTest *t, const char *format, ...); int rperf(RegressionTest *t, const char *tag, double val); const char *regression_status_string(int status); + +void tell_diags_regression_testing_is_on(); diff --git a/src/traffic_server/traffic_server.cc b/src/traffic_server/traffic_server.cc index c9520300f7d..f5f169ac3cd 100644 --- a/src/traffic_server/traffic_server.cc +++ b/src/traffic_server/traffic_server.cc @@ -1570,6 +1570,9 @@ static void run_RegressionTest() { if (regression_level) { + // Call this so that Diags.cc will send diagnostic output to stderr. + tell_diags_regression_testing_is_on(); + eventProcessor.schedule_every(new RegressionCont(), HRTIME_SECONDS(1)); } } diff --git a/src/tscore/Diags.cc b/src/tscore/Diags.cc index 20d22ec7a5f..ef0ac93da19 100644 --- a/src/tscore/Diags.cc +++ b/src/tscore/Diags.cc @@ -44,7 +44,7 @@ #include "tscore/ink_time.h" #include "tscore/ink_hrtime.h" #include "tscore/ink_thread.h" -#include "tscore/BufferWriter.h" +#include "tscore/Regression.h" #include "tscore/Diags.h" int diags_on_for_plugins = 0; @@ -53,6 +53,14 @@ int DiagsConfigState::enabled[2] = {0, 0}; // Global, used for all diagnostics Diags *diags = nullptr; +static bool regression_testing_on = false; + +void +tell_diags_regression_testing_is_on() +{ + regression_testing_on = true; +} + static bool location(const SourceLocation *loc, DiagsShowLocation show, DiagsLevel level) { @@ -266,7 +274,7 @@ Diags::print_va(const char *debug_tag, DiagsLevel diags_level, const SourceLocat } } - if (config.outputs[diags_level].to_stderr) { + if (config.outputs[diags_level].to_stderr || regression_testing_on) { if (stderr_log && stderr_log->m_fp) { va_list tmp; va_copy(tmp, ap);