83 TEST_CASE(
"DumpIncomingInvalidFile")
85 ProfilingOptions options;
86 options.m_IncomingCaptureFile =
"/";
87 options.m_OutgoingCaptureFile =
"";
88 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
false);
89 CHECK_THROWS_AS(decorator.ReadPacket(0), arm::pipe::ProfilingException);
92 TEST_CASE(
"DumpIncomingInvalidFileIgnoreErrors")
94 ProfilingOptions options;
95 options.m_IncomingCaptureFile =
"/";
96 options.m_OutgoingCaptureFile =
"";
97 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
true);
98 CHECK_NOTHROW(decorator.ReadPacket(0));
101 TEST_CASE(
"DumpIncomingValidFile")
105 ProfilingOptions options;
106 options.m_IncomingCaptureFile = fileName.string();
107 options.m_OutgoingCaptureFile =
"";
109 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
false);
112 std::unique_ptr<Packet> packet;
113 CHECK_NOTHROW(packet = std::make_unique<Packet>(decorator.ReadPacket(0)));
117 std::vector<char> data = ReadDumpFile(options.m_IncomingCaptureFile);
118 const char* packetData =
reinterpret_cast<const char*
>(packet->GetData());
121 constexpr
unsigned int bytesToSkip = 2u *
sizeof(uint32_t);
122 int diff = std::strncmp(data.data() + bytesToSkip, packetData, g_DataLength);
124 fs::remove(fileName);
127 TEST_CASE(
"DumpOutgoingInvalidFile")
129 ProfilingOptions options;
130 options.m_IncomingCaptureFile =
"";
131 options.m_OutgoingCaptureFile =
"/";
132 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
false);
133 CHECK_THROWS_AS(decorator.WritePacket(g_DataPtr, g_DataLength), arm::pipe::ProfilingException);
136 TEST_CASE(
"DumpOutgoingInvalidFileIgnoreErrors")
138 ProfilingOptions options;
139 options.m_IncomingCaptureFile =
"";
140 options.m_OutgoingCaptureFile =
"/";
142 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
true);
143 CHECK_NOTHROW(decorator.WritePacket(g_DataPtr, g_DataLength));
145 bool success = decorator.WritePacket(g_DataPtr, g_DataLength);
149 TEST_CASE(
"DumpOutgoingValidFile")
153 ProfilingOptions options;
154 options.m_IncomingCaptureFile =
"";
155 options.m_OutgoingCaptureFile = fileName.string();
157 ProfilingConnectionDumpToFileDecorator decorator(std::make_unique<DummyProfilingConnection>(), options,
false);
159 bool success =
false;
160 CHECK_NOTHROW(success = decorator.WritePacket(g_DataPtr, g_DataLength));
165 std::vector<char> data = ReadDumpFile(options.m_OutgoingCaptureFile);
168 int diff = std::strncmp(data.data(), g_Data.data(), g_DataLength);
170 fs::remove(fileName);
fs::path NamedTempFile(const char *fileName)
Returns a path to a file in the system temporary folder. If the file existed it will be deleted...