From 7a813f433a548d985891543f3fb832c181cae084 Mon Sep 17 00:00:00 2001
From: Timur Safin <tsafin@tarantool.org>
Date: Tue, 15 Nov 2022 11:39:44 +0300
Subject: [PATCH] debugger: introduce logging facility

It's frequently needed to see interaction of a luatest script
and its chield launched via popen.
Now we display extra debugging information received from
children pipes directly to the parent screen. It's hidden
by default by luatest (if everything goes well), but could
be displayed with `luatest -c` option.

```
luatest -c -v app-luatest/console_debugger_session_test.lua
```

NO_DOC=internal
NO_CHANGELOG=internal
---
 test/app-luatest/console_debugger_session_test.lua | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/test/app-luatest/console_debugger_session_test.lua b/test/app-luatest/console_debugger_session_test.lua
index b27a8a6bc1..8fc2284503 100644
--- a/test/app-luatest/console_debugger_session_test.lua
+++ b/test/app-luatest/console_debugger_session_test.lua
@@ -37,6 +37,10 @@ local function dbg_failed_range(v)
             format(v, 1, 0x7fffff00)
 end
 
+local function debuglog(...)
+    print('--', ...)
+end
+
 local cmd_aliases = {
     ['b'] = 'b|break|breakpoint|add_break|add_breakpoint',
     ['bd'] = 'bd|bdelete|delete_break|delete_breakpoint',
@@ -197,12 +201,14 @@ local function run_debug_session(cmdline, sequence, header)
                     cmd = cmd .. '\n'
                 end
                 fh:write(cmd)
+                debuglog('Execute command: "'..trim(cmd)..'"')
             end
 
             local result
             local clean_cmd = trim(cmd)
             -- there should be empty stderr - check it before stdout
             local errout = fh:read({ timeout = 0.05, stderr = true})
+            debuglog('stderr output: ', trim(errout))
             if first and errout then
                 -- we do not expect anything on stderr
                 -- with exception of initial debugger header
@@ -213,6 +219,7 @@ local function run_debug_session(cmdline, sequence, header)
             end
             repeat
                 result = trim(unescape(fh:read({ timeout = 0.5 })))
+                debuglog('stdout output:', result)
             until result ~= '' or result ~= clean_cmd
             if expected ~= '' then
                 t.assert_str_contains(result, expected, false)
-- 
GitLab