@@ -103,8 +103,11 @@ class UnstructuredLogEvent {
103103class IrUnitHandler {
104104public:
105105 // Implements `clp::ffi::ir_stream::IrUnitHandlerReq`
106- [[nodiscard]] auto handle_log_event (KeyValuePairLogEvent&& log_event) -> IRErrorCode {
106+ [[nodiscard]] auto
107+ handle_log_event (KeyValuePairLogEvent&& log_event, [[maybe_unused]] size_t log_event_idx)
108+ -> IRErrorCode {
107109 m_deserialized_log_events.emplace_back (std::move (log_event));
110+ m_deserialized_log_event_indices.emplace_back (log_event_idx);
108111 return IRErrorCode::IRErrorCode_Success;
109112 }
110113
@@ -152,8 +155,13 @@ class IrUnitHandler {
152155 return m_deserialized_log_events;
153156 }
154157
158+ [[nodiscard]] auto get_deserialized_log_event_indices () const -> vector<size_t> const & {
159+ return m_deserialized_log_event_indices;
160+ }
161+
155162private:
156163 vector<KeyValuePairLogEvent> m_deserialized_log_events;
164+ vector<size_t > m_deserialized_log_event_indices;
157165 bool m_is_complete{false };
158166};
159167
@@ -1313,6 +1321,10 @@ TEMPLATE_TEST_CASE(
13131321 auto const & deserialized_log_events{ir_unit_handler.get_deserialized_log_events ()};
13141322 REQUIRE ((expected_auto_gen_and_user_gen_object_pairs.size () == deserialized_log_events.size ()));
13151323
1324+ auto const & deserialized_log_event_indices{
1325+ ir_unit_handler.get_deserialized_log_event_indices ()
1326+ };
1327+
13161328 auto const num_log_events{expected_auto_gen_and_user_gen_object_pairs.size ()};
13171329 for (size_t idx{0 }; idx < num_log_events; ++idx) {
13181330 auto const & [expected_auto_gen_json_obj, expected_user_gen_json_obj]{
@@ -1339,6 +1351,8 @@ TEMPLATE_TEST_CASE(
13391351 };
13401352 REQUIRE ((expected_auto_gen_json_obj == actual_auto_gen_json_obj));
13411353 REQUIRE ((expected_user_gen_json_obj == actual_user_gen_json_obj));
1354+
1355+ REQUIRE ((idx == deserialized_log_event_indices.at (idx)));
13421356 }
13431357
13441358 auto const eof_result{deserializer.deserialize_next_ir_unit (reader)};
0 commit comments