]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/test/librbd/io/test_mock_SimpleSchedulerObjectDispatch.cc
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / test / librbd / io / test_mock_SimpleSchedulerObjectDispatch.cc
index ab2b0ba1d7c02d904731aede47121973eab58b4e..a3d823d234f9e7ad772e6e771c47735a3e720072 100644 (file)
@@ -131,9 +131,10 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Read) {
 
   C_SaferCond cond;
   Context *on_finish = &cond;
+  io::ReadExtents extents = {{0, 4096}, {8192, 4096}};
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.read(
-      0, 0, 4096, CEPH_NOSNAP, 0, {}, nullptr, nullptr, nullptr, nullptr,
-      &on_finish, nullptr));
+      0, &extents, mock_image_ctx.get_data_io_context(), 0, 0, {}, nullptr,
+      nullptr, nullptr, &on_finish, nullptr));
   ASSERT_EQ(on_finish, &cond); // not modified
   on_finish->complete(0);
   ASSERT_EQ(0, cond.wait());
@@ -150,8 +151,8 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Discard) {
   C_SaferCond cond;
   Context *on_finish = &cond;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.discard(
-      0, 0, 4096, mock_image_ctx.snapc, 0, {}, nullptr, nullptr, nullptr,
-      &on_finish, nullptr));
+      0, 0, 4096, mock_image_ctx.get_data_io_context(), 0, {}, nullptr, nullptr,
+      nullptr, &on_finish, nullptr));
   ASSERT_NE(on_finish, &cond);
   on_finish->complete(0);
   ASSERT_EQ(0, cond.wait());
@@ -171,8 +172,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Write) {
   C_SaferCond cond;
   Context *on_finish = &cond;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr,
+      &on_finish, nullptr));
   ASSERT_NE(on_finish, &cond);
   on_finish->complete(0);
   ASSERT_EQ(0, cond.wait());
@@ -192,8 +194,8 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteSame) {
   Context *on_finish = &cond;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write_same(
       0, 0, 4096, std::move(buffer_extents), std::move(data),
-      mock_image_ctx.snapc, 0, {}, nullptr, nullptr, nullptr, &on_finish,
-      nullptr));
+      mock_image_ctx.get_data_io_context(), 0, {}, nullptr, nullptr, nullptr,
+      &on_finish, nullptr));
   ASSERT_NE(on_finish, &cond);
   on_finish->complete(0);
   ASSERT_EQ(0, cond.wait());
@@ -212,8 +214,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, CompareAndWrite) {
   C_SaferCond cond;
   Context *on_finish = &cond;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.compare_and_write(
-      0, 0, std::move(cmp_data), std::move(write_data), mock_image_ctx.snapc, 0,
-      {}, nullptr, nullptr, nullptr, nullptr, &on_finish, nullptr));
+      0, 0, std::move(cmp_data), std::move(write_data),
+      mock_image_ctx.get_data_io_context(), 0, {}, nullptr, nullptr, nullptr,
+      nullptr, &on_finish, nullptr));
   ASSERT_NE(on_finish, &cond);
   on_finish->complete(0);
   ASSERT_EQ(0, cond.wait());
@@ -256,8 +259,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteDelayed) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -268,9 +272,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteDelayed) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -303,8 +307,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteDelayedFlush) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -315,9 +320,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteDelayedFlush) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -359,8 +364,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -374,9 +380,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched2;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched2));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched2));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -388,9 +394,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   Context *on_finish3 = &cond3;
   C_SaferCond on_dispatched3;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish3,
-      &on_dispatched3));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish3, &on_dispatched3));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish3, &cond3);
 
@@ -401,9 +407,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   Context *on_finish4 = &cond4;
   C_SaferCond on_dispatched4;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish4,
-      &on_dispatched4));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {},&object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish4, &on_dispatched4));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish4, &cond4);
 
@@ -414,9 +420,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   Context *on_finish5 = &cond5;
   C_SaferCond on_dispatched5;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish5,
-      &on_dispatched5));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish5, &on_dispatched5));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish5, &cond5);
 
@@ -427,9 +433,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteMerged) {
   Context *on_finish6 = &cond6;
   C_SaferCond on_dispatched6;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish6,
-      &on_dispatched6));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish6, &on_dispatched6));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish6, &cond6);
 
@@ -475,8 +481,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteNonSequential) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -490,9 +497,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteNonSequential) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched2;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched2));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched2));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -506,8 +513,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, WriteNonSequential) {
   C_SaferCond cond3;
   Context *on_finish3 = &cond3;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish3, nullptr));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish3, nullptr));
   ASSERT_NE(on_finish3, &cond3);
 
   on_finish1->complete(0);
@@ -538,8 +546,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   // write (2) 0~10 (delayed)
@@ -554,9 +563,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched2;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched2));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched2));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -570,9 +579,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   Context *on_finish3 = &cond3;
   C_SaferCond on_dispatched3;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish3,
-      &on_dispatched3));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish3, &on_dispatched3));
   ASSERT_NE(on_finish3, &cond3);
 
   // discard (1) (non-seq io)
@@ -583,8 +592,8 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   C_SaferCond cond4;
   Context *on_finish4 = &cond4;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.discard(
-      0, 4096, 4096, mock_image_ctx.snapc, 0, {}, nullptr, nullptr, nullptr,
-      &on_finish4, nullptr));
+      0, 4096, 4096, mock_image_ctx.get_data_io_context(), 0, {}, nullptr,
+      nullptr, nullptr, &on_finish4, nullptr));
   ASSERT_NE(on_finish4, &cond4);
   ASSERT_EQ(0, on_dispatched2.wait());
   ASSERT_EQ(0, on_dispatched3.wait());
@@ -600,9 +609,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   Context *on_finish5 = &cond5;
   C_SaferCond on_dispatched5;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish5,
-      &on_dispatched5));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish5, &on_dispatched5));
   ASSERT_NE(on_finish5, &cond5);
   ASSERT_NE(timer_task, nullptr);
 
@@ -614,8 +623,8 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   C_SaferCond cond6;
   Context *on_finish6 = &cond6;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.discard(
-      0, 4096, 4096, mock_image_ctx.snapc, 0, {}, nullptr, nullptr, nullptr,
-      &on_finish6, nullptr));
+      0, 4096, 4096, mock_image_ctx.get_data_io_context(), 0, {}, nullptr,
+      nullptr, nullptr, &on_finish6, nullptr));
   ASSERT_NE(on_finish6, &cond6);
   ASSERT_EQ(0, on_dispatched5.wait());
 
@@ -630,9 +639,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Mixed) {
   Context *on_finish7 = &cond7;
   C_SaferCond on_dispatched7;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, object_off, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish7,
-      &on_dispatched7));
+      0, object_off, std::move(data), mock_image_ctx.get_data_io_context(), 0,
+      0, std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish7, &on_dispatched7));
   ASSERT_NE(on_finish7, &cond7);
   ASSERT_NE(timer_task, nullptr);
 
@@ -693,8 +702,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, DispatchQueue) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      object_no, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      object_no, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -706,9 +716,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, DispatchQueue) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched2;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      object_no, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched2));
+      object_no, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched2));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);
@@ -720,8 +730,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, DispatchQueue) {
   C_SaferCond cond3;
   Context *on_finish3 = &cond3;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      object_no, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish3, nullptr));
+      object_no, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish3,
+      nullptr));
   ASSERT_NE(on_finish3, &cond3);
 
   data.clear();
@@ -729,9 +740,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, DispatchQueue) {
   Context *on_finish4 = &cond4;
   C_SaferCond on_dispatched4;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      object_no, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish4,
-      &on_dispatched4));
+      object_no, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish4, &on_dispatched4));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish4, &cond4);
 
@@ -776,8 +787,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Timer) {
   C_SaferCond cond1;
   Context *on_finish1 = &cond1;
   ASSERT_FALSE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, nullptr, &on_finish1, nullptr));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, nullptr, &on_finish1,
+      nullptr));
   ASSERT_NE(on_finish1, &cond1);
 
   Context *timer_task = nullptr;
@@ -789,9 +801,9 @@ TEST_F(TestMockIoSimpleSchedulerObjectDispatch, Timer) {
   Context *on_finish2 = &cond2;
   C_SaferCond on_dispatched;
   ASSERT_TRUE(mock_simple_scheduler_object_dispatch.write(
-      0, 0, std::move(data), mock_image_ctx.snapc, 0, {},
-      &object_dispatch_flags, nullptr, &dispatch_result, &on_finish2,
-      &on_dispatched));
+      0, 0, std::move(data), mock_image_ctx.get_data_io_context(), 0, 0,
+      std::nullopt, {}, &object_dispatch_flags, nullptr, &dispatch_result,
+      &on_finish2, &on_dispatched));
   ASSERT_EQ(dispatch_result, io::DISPATCH_RESULT_COMPLETE);
   ASSERT_NE(on_finish2, &cond2);
   ASSERT_NE(timer_task, nullptr);