blob: 6a56d2842a44166b04efcce6ab7dbcc6fdec039e [file] [log] [blame] [edit]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <gtest/gtest.h>
#include "tools/fidlcat/interception_tests/interception_workflow_test.h"
namespace fidlcat {
TEST(DispatcherTest, TraceDecode) {
std::string trace =
""
"syscall 0x7ffd6863e9c0 process 2916209 FfxDoctor\n"
"\n"
"Welcome to ffx doctor.\n"
"- Frontend version: 2021-06-10T15:35:44+00:00\n"
"- Default target: fuchsia-5254-0063-5e7a\n"
"\n"
"First, bringing up a working daemon...\n"
"Checking for a running daemon...found\n"
"Attempting to connect to the daemon. This may take a couple seconds..."
"syscall 0x7ffd686369b0 channel_create 10000 2916209 2916209 1 2 0\n"
"syscall 0x7ffd68636f90 startup 2916209 2916209 Channel(1) dir /svc\n"
"syscall 0x7ffd68637fd0 channel_create 20000 2916209 2916209 9 a 0\n"
"syscall 0x559138249750 channel_write_etc 30000 2916209 2916209 1 24 1\n"
"syscall 0x559138249750 write_bytes 00 00 00 00 00 00 00 01 ab 89 f9 f2 d9 06 68 55 "
"ff ff ff ff 00 00 00 00 \n"
"syscall 0x559138249750 write_etc_handle 0 0000000a 0000000e 4 0\n"
"syscall 0x559138249750 write_status 40000 0\n"
"syscall 0x559138249750 channel_write_etc 50000 2916209 2916209 9 16 0\n"
"syscall 0x559138249750 write_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 \n"
"syscall 0x559138249750 write_status 60000 0\n"
"syscall 0x7ffd68641340 channel_create 70000 2916209 2916209 11 12 0\n"
"syscall 0x7f973314c240 channel_read 80000 2916209 2916209 2 0 24 1\n"
"syscall 0x7f973314c240 read_bytes 00 00 00 00 00 00 00 01 ab 89 f9 f2 d9 06 68 55 "
"ff ff ff ff 00 00 00 00 \n"
"syscall 0x7f973314c240 read_handles 0000000a \n"
"syscall 0x7f973314c240 channel_read 90000 2916209 2916209 a 0 16 0\n"
"syscall 0x7f973314c240 read_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 \n"
"syscall 0x5591382ba060 channel_write_etc 100000 2916209 2916209 a 96 0\n"
"syscall 0x5591382ba060 write_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382ba060 write_bytes fb 77 62 62 5e 68 bc c6 01 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382ba060 write_bytes 10 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382ba060 write_status 110000 0\n"
"syscall 0x7ffd686381a0 channel_read 120000 2916209 2916209 9 0 96 0\n"
"syscall 0x7ffd686381a0 read_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes fb 77 62 62 5e 68 bc c6 01 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes 10 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382ba060 channel_write_etc 130000 2916209 2916209 9 16 0\n"
"syscall 0x5591382ba060 write_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 \n"
"syscall 0x5591382ba060 write_status 140000 0\n"
"syscall 0x7f973314c240 channel_read 150000 2916209 2916209 a 0 16 0\n"
"syscall 0x7f973314c240 read_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 \n"
"syscall 0x5591382da4c0 channel_write_etc 160000 2916209 2916209 a 264 0\n"
"syscall 0x5591382da4c0 write_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 "
"02 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes fb 77 62 62 5e 68 bc c6 01 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes ff 78 3b 5e 07 65 a4 8f 00 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes 10 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes 78 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"02 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes 1f 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"23 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x5591382da4c0 write_bytes 66 75 63 68 73 69 61 2e 64 65 76 65 6c 6f 70 65 "
"72 2e 62 72 69 64 67 65 2e 44 61 65 6d 6f 6e 00 \n"
"syscall 0x5591382da4c0 write_bytes 66 75 63 68 73 69 61 2e 6f 76 65 72 6e 65 74 2e "
"70 72 6f 74 6f 63 6f 6c 2e 44 69 61 67 6e 6f 73 \n"
"syscall 0x5591382da4c0 write_bytes 74 69 63 00 00 00 00 00 \n"
"syscall 0x5591382da4c0 write_status 170000 0\n"
"syscall 0x7ffd686381a0 channel_read 180000 2916209 2916209 9 0 264 0\n"
"syscall 0x7ffd686381a0 read_bytes 01 00 00 00 00 00 00 01 e0 80 c0 4d ef a5 af 72 "
"02 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes fb 77 62 62 5e 68 bc c6 01 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes ff 78 3b 5e 07 65 a4 8f 00 00 00 00 00 00 00 00 "
"01 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes 10 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes 78 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"02 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes 1f 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff "
"23 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \n"
"syscall 0x7ffd686381a0 read_bytes 66 75 63 68 73 69 61 2e 64 65 76 65 6c 6f 70 65 "
"72 2e 62 72 69 64 67 65 2e 44 61 65 6d 6f 6e 00 \n"
"syscall 0x7ffd686381a0 read_bytes 66 75 63 68 73 69 61 2e 6f 76 65 72 6e 65 74 2e "
"70 72 6f 74 6f 63 6f 6c 2e 44 69 61 67 6e 6f 73 \n"
"syscall 0x7ffd686381a0 read_bytes 74 69 63 00 00 00 00 00 \n"
"syscall 0x7ffd68637f60 channel_create 190000 2916209 2916209 19 1a 0\n"
"syscall 0x5591382da4c0 channel_write_etc 200000 2916209 2916209 1 24 1\n"
"syscall 0x5591382da4c0 write_bytes 00 00 00 00 00 00 00 01 ab 89 f9 f2 d9 06 68 55 "
"ff ff ff ff 00 00 00 00 \n"
"syscall 0x5591382da4c0 write_etc_handle 0 0000001a 0000000e 4 0\n"
"syscall 0x5591382da4c0 write_status 210000 0\n"
"syscall 0x7ffd686380c0 channel_create 220000 2916209 2916209 21 22 0\n"
"syscall 0x5591382da4c0 channel_write_etc 230000 2916209 2916209 19 80 1\n"
"syscall 0x5591382da4c0 write_bytes 00 00 00 00 00 00 00 01 4e 42 1c 4c f0 a2 3b 22 "
"ff 78 3b 5e 07 65 a4 8f 1f 00 00 00 00 00 00 00 \n"
"syscall 0x5591382da4c0 write_bytes ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 "
"66 75 63 68 73 69 61 2e 64 65 76 65 6c 6f 70 65 \n"
"syscall 0x5591382da4c0 write_bytes 72 2e 62 72 69 64 67 65 2e 44 61 65 6d 6f 6e 00 \n"
"syscall 0x5591382da4c0 write_etc_handle 0 00000021 80000000 4 0\n"
"syscall 0x5591382da4c0 write_status 240000 0\n"
"success\n";
DecodeOptions decode_options;
decode_options.output_mode = OutputMode::kStandard;
DisplayOptions display_options;
std::stringstream os;
SyscallDisplayDispatcher dispatcher(nullptr, decode_options, display_options, os);
Replay replay(&dispatcher);
std::stringstream is(trace);
replay.DecodeTrace(is);
replay.dispatcher()->SessionEnded();
std::string result = os.str();
std::string expected =
""
"\n"
"Welcome to ffx doctor.\n"
"- Frontend version: 2021-06-10T15:35:44+00:00\n"
"- Default target: fuchsia-5254-0063-5e7a\n"
"\n"
"First, bringing up a working daemon...\n"
"Checking for a running daemon...found\n"
"Attempting to connect to the daemon. This may take a couple seconds...\n"
"\n"
"0.000010 FfxDoctor 2916209:2916209 zx_channel_create()\n"
"0.000010 -> ZX_OK (out0: handle = Channel:00000001, out1: handle = Channel:00000002)\n"
"\n"
"0.000020 FfxDoctor 2916209:2916209 zx_channel_create()\n"
"0.000020 -> ZX_OK (out0: handle = Channel:00000009, out1: handle = Channel:0000000a)\n"
"\n"
"0.000030 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:00000001(dir:/svc), options: uint32 = 0)\n"
" Can't decode message: num_bytes=24 num_handles=1 ordinal=556806d9f2f989ab\n"
" data=\n"
" 0000: 00, 00, 00, 00, 00, 00, 00, 01, ab, 89, f9, f2, d9, 06, 68, 55, \n"
" 0010: ff, ff, ff, ff, 00, 00, 00, 00\n"
" handles=\n"
" 0000: 0000000a\n"
"0.000040 -> ZX_OK\n"
"\n"
"0.000050 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:00000009, options: uint32 = 0)\n"
" Can't decode message: num_bytes=16 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72\n"
"0.000060 -> ZX_OK\n"
"\n"
"0.000070 FfxDoctor 2916209:2916209 zx_channel_create()\n"
"0.000070 -> ZX_OK (out0: handle = Channel:00000011, out1: handle = Channel:00000012)\n"
"\n"
"0.000080 FfxDoctor 2916209:2916209 zx_channel_read("
"handle: handle = Channel:00000002, options: uint32 = 0)\n"
"0.000080 -> ZX_OK\n"
" Can't decode message: num_bytes=24 num_handles=1 ordinal=556806d9f2f989ab\n"
" data=\n"
" 0000: 00, 00, 00, 00, 00, 00, 00, 01, ab, 89, f9, f2, d9, 06, 68, 55, \n"
" 0010: ff, ff, ff, ff, 00, 00, 00, 00\n"
" handles=\n"
" 0000: 0000000a\n"
"\n"
"0.000090 FfxDoctor 2916209:2916209 zx_channel_read("
"handle: handle = Channel:0000000a, options: uint32 = 0)\n"
"0.000090 -> ZX_OK\n"
" Can't decode message: num_bytes=16 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72\n"
"\n"
"0.000100 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:0000000a, options: uint32 = 0)\n"
" Can't decode message: num_bytes=96 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72, \n"
" 0010: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0020: fb, 77, 62, 62, 5e, 68, bc, c6, 01, 00, 00, 00, 00, 00, 00, 00, \n"
" 0030: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0040: 10, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0050: 00, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff\n"
"0.000110 -> ZX_OK\n"
"\n"
"0.000120 FfxDoctor 2916209:2916209 zx_channel_read("
"handle: handle = Channel:00000009, options: uint32 = 0)\n"
"0.000120 -> ZX_OK\n"
" Can't decode message: num_bytes=96 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72, \n"
" 0010: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0020: fb, 77, 62, 62, 5e, 68, bc, c6, 01, 00, 00, 00, 00, 00, 00, 00, \n"
" 0030: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0040: 10, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0050: 00, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff\n"
"\n"
"0.000130 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:00000009, options: uint32 = 0)\n"
" Can't decode message: num_bytes=16 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72\n"
"0.000140 -> ZX_OK\n"
"\n"
"0.000150 FfxDoctor 2916209:2916209 zx_channel_read("
"handle: handle = Channel:0000000a, options: uint32 = 0)\n"
"0.000150 -> ZX_OK\n"
" Can't decode message: num_bytes=16 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72\n"
"\n"
"0.000160 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:0000000a, options: uint32 = 0)\n"
" Can't decode message: num_bytes=264 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72, \n"
" 0010: 02, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0020: fb, 77, 62, 62, 5e, 68, bc, c6, 01, 00, 00, 00, 00, 00, 00, 00, \n"
" 0030: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0040: ff, 78, 3b, 5e, 07, 65, a4, 8f, 00, 00, 00, 00, 00, 00, 00, 00, \n"
" 0050: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0060: 10, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0070: 00, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0080: 78, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0090: 02, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00a0: 1f, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00b0: 23, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00c0: 66, 75, 63, 68, 73, 69, 61, 2e, 64, 65, 76, 65, 6c, 6f, 70, 65, \n"
" 00d0: 72, 2e, 62, 72, 69, 64, 67, 65, 2e, 44, 61, 65, 6d, 6f, 6e, 00, \n"
" 00e0: 66, 75, 63, 68, 73, 69, 61, 2e, 6f, 76, 65, 72, 6e, 65, 74, 2e, \n"
" 00f0: 70, 72, 6f, 74, 6f, 63, 6f, 6c, 2e, 44, 69, 61, 67, 6e, 6f, 73, \n"
" 0100: 74, 69, 63, 00, 00, 00, 00, 00\n"
"0.000170 -> ZX_OK\n"
"\n"
"0.000180 FfxDoctor 2916209:2916209 zx_channel_read("
"handle: handle = Channel:00000009, options: uint32 = 0)\n"
"0.000180 -> ZX_OK\n"
" Can't decode message: num_bytes=264 num_handles=0 txid=1 ordinal=72afa5ef4dc080e0\n"
" data=\n"
" 0000: 01, 00, 00, 00, 00, 00, 00, 01, e0, 80, c0, 4d, ef, a5, af, 72, \n"
" 0010: 02, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0020: fb, 77, 62, 62, 5e, 68, bc, c6, 01, 00, 00, 00, 00, 00, 00, 00, \n"
" 0030: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0040: ff, 78, 3b, 5e, 07, 65, a4, 8f, 00, 00, 00, 00, 00, 00, 00, 00, \n"
" 0050: 01, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0060: 10, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0070: 00, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0080: 78, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 0090: 02, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00a0: 1f, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00b0: 23, 00, 00, 00, 00, 00, 00, 00, ff, ff, ff, ff, ff, ff, ff, ff, \n"
" 00c0: 66, 75, 63, 68, 73, 69, 61, 2e, 64, 65, 76, 65, 6c, 6f, 70, 65, \n"
" 00d0: 72, 2e, 62, 72, 69, 64, 67, 65, 2e, 44, 61, 65, 6d, 6f, 6e, 00, \n"
" 00e0: 66, 75, 63, 68, 73, 69, 61, 2e, 6f, 76, 65, 72, 6e, 65, 74, 2e, \n"
" 00f0: 70, 72, 6f, 74, 6f, 63, 6f, 6c, 2e, 44, 69, 61, 67, 6e, 6f, 73, \n"
" 0100: 74, 69, 63, 00, 00, 00, 00, 00\n"
"\n"
"0.000190 FfxDoctor 2916209:2916209 zx_channel_create()\n"
"0.000190 -> ZX_OK (out0: handle = Channel:00000019, out1: handle = Channel:0000001a)\n"
"\n"
"0.000200 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:00000001(dir:/svc), options: uint32 = 0)\n"
" Can't decode message: num_bytes=24 num_handles=1 ordinal=556806d9f2f989ab\n"
" data=\n"
" 0000: 00, 00, 00, 00, 00, 00, 00, 01, ab, 89, f9, f2, d9, 06, 68, 55, \n"
" 0010: ff, ff, ff, ff, 00, 00, 00, 00\n"
" handles=\n"
" 0000: 0000001a\n"
"0.000210 -> ZX_OK\n"
"\n"
"0.000220 FfxDoctor 2916209:2916209 zx_channel_create()\n"
"0.000220 -> ZX_OK (out0: handle = Channel:00000021, out1: handle = Channel:00000022)\n"
"\n"
"0.000230 FfxDoctor 2916209:2916209 zx_channel_write_etc("
"handle: handle = Channel:00000019, options: uint32 = 0)\n"
" Can't decode message: num_bytes=80 num_handles=1 ordinal=223ba2f04c1c424e\n"
" data=\n"
" 0000: 00, 00, 00, 00, 00, 00, 00, 01, 4e, 42, 1c, 4c, f0, a2, 3b, 22, \n"
" 0010: ff, 78, 3b, 5e, 07, 65, a4, 8f, 1f, 00, 00, 00, 00, 00, 00, 00, \n"
" 0020: ff, ff, ff, ff, ff, ff, ff, ff, ff, ff, ff, ff, 00, 00, 00, 00, \n"
" 0030: 66, 75, 63, 68, 73, 69, 61, 2e, 64, 65, 76, 65, 6c, 6f, 70, 65, \n"
" 0040: 72, 2e, 62, 72, 69, 64, 67, 65, 2e, 44, 61, 65, 6d, 6f, 6e, 00\n"
" handles=\n"
" 0000: 00000021\n"
"0.000240 -> ZX_OK\n"
"success\n"
"\n";
EXPECT_EQ(result, expected);
}
} // namespace fidlcat