Skip to content

Commit d146d2b

Browse files
authored
Merge pull request ceph#51729 from NitzanMordhai/wip-nitzan-striper-api-aio-futex-wait
test: futex fail if more notification sent after destroy Reviewed-by: Laura Flores <[email protected]>
2 parents cd6e5c5 + 06411ce commit d146d2b

File tree

1 file changed

+15
-2
lines changed
  • src/test/libradosstriper

1 file changed

+15
-2
lines changed

src/test/libradosstriper/aio.cc

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ TEST_F(StriperTest, IsSafe) {
307307
break;
308308
}
309309
}
310+
test_data.wait();
310311
char buf2[128];
311312
memset(buf2, 0, sizeof(buf2));
312313
rados_completion_t my_completion2;
@@ -318,8 +319,8 @@ TEST_F(StriperTest, IsSafe) {
318319
TestAlarm alarm;
319320
rados_aio_wait_for_complete(my_completion2);
320321
}
321-
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
322322
test_data.wait();
323+
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
323324
rados_aio_release(my_completion);
324325
rados_aio_release(my_completion2);
325326
}
@@ -337,6 +338,7 @@ TEST_F(StriperTest, RoundTripAppend) {
337338
TestAlarm alarm;
338339
rados_aio_wait_for_complete(my_completion);
339340
}
341+
test_data.wait();
340342
char buf2[128];
341343
memset(buf2, 0xdd, sizeof(buf2));
342344
ASSERT_EQ(0, rados_aio_create_completion2(&test_data,
@@ -347,6 +349,7 @@ TEST_F(StriperTest, RoundTripAppend) {
347349
TestAlarm alarm;
348350
rados_aio_wait_for_complete(my_completion2);
349351
}
352+
test_data.wait();
350353
char buf3[sizeof(buf) + sizeof(buf2)];
351354
memset(buf3, 0, sizeof(buf3));
352355
ASSERT_EQ(0, rados_aio_create_completion2(&test_data,
@@ -379,6 +382,7 @@ TEST_F(StriperTestPP, RoundTripAppendPP) {
379382
TestAlarm alarm;
380383
my_completion->wait_for_complete();
381384
}
385+
test_data.wait();
382386
char buf2[128];
383387
memset(buf2, 0xdd, sizeof(buf2));
384388
bufferlist bl2;
@@ -390,6 +394,7 @@ TEST_F(StriperTestPP, RoundTripAppendPP) {
390394
TestAlarm alarm;
391395
my_completion2->wait_for_complete();
392396
}
397+
test_data.wait();
393398
bufferlist bl3;
394399
AioCompletion *my_completion3 =
395400
librados::Rados::aio_create_completion(&test_data, set_completion_complete);
@@ -398,10 +403,11 @@ TEST_F(StriperTestPP, RoundTripAppendPP) {
398403
TestAlarm alarm;
399404
my_completion3->wait_for_complete();
400405
}
406+
test_data.wait();
401407
ASSERT_EQ(sizeof(buf) + sizeof(buf2), (unsigned)my_completion3->get_return_value());
402408
ASSERT_EQ(0, memcmp(bl3.c_str(), buf, sizeof(buf)));
403409
ASSERT_EQ(0, memcmp(bl3.c_str() + sizeof(buf), buf2, sizeof(buf2)));
404-
test_data.wait();
410+
405411
my_completion->release();
406412
my_completion2->release();
407413
my_completion3->release();
@@ -417,6 +423,7 @@ TEST_F(StriperTest, Flush) {
417423
memset(buf, 0xee, sizeof(buf));
418424
ASSERT_EQ(0, rados_striper_aio_write(striper, "Flush", my_completion, buf, sizeof(buf), 0));
419425
rados_striper_aio_flush(striper);
426+
test_data.wait();
420427
char buf2[128];
421428
memset(buf2, 0, sizeof(buf2));
422429
rados_completion_t my_completion2;
@@ -444,6 +451,7 @@ TEST_F(StriperTestPP, FlushPP) {
444451
bl1.append(buf, sizeof(buf));
445452
ASSERT_EQ(0, striper.aio_write("FlushPP", my_completion, bl1, sizeof(buf), 0));
446453
striper.aio_flush();
454+
test_data.wait();
447455
bufferlist bl2;
448456
AioCompletion *my_completion2 =
449457
librados::Rados::aio_create_completion(&test_data, set_completion_complete);
@@ -471,6 +479,7 @@ TEST_F(StriperTest, RoundTripWriteFull) {
471479
TestAlarm alarm;
472480
rados_aio_wait_for_complete(my_completion);
473481
}
482+
test_data.wait();
474483
char buf2[64];
475484
memset(buf2, 0xdd, sizeof(buf2));
476485
ASSERT_EQ(0, rados_aio_create_completion2(&test_data,
@@ -481,6 +490,7 @@ TEST_F(StriperTest, RoundTripWriteFull) {
481490
TestAlarm alarm;
482491
rados_aio_wait_for_complete(my_completion2);
483492
}
493+
test_data.wait();
484494
char buf3[sizeof(buf) + sizeof(buf2)];
485495
memset(buf3, 0, sizeof(buf3));
486496
ASSERT_EQ(0, rados_aio_create_completion2(&test_data,
@@ -512,6 +522,7 @@ TEST_F(StriperTestPP, RoundTripWriteFullPP) {
512522
TestAlarm alarm;
513523
my_completion->wait_for_complete();
514524
}
525+
test_data.wait();
515526
char buf2[64];
516527
memset(buf2, 0xdd, sizeof(buf2));
517528
bufferlist bl2;
@@ -523,6 +534,7 @@ TEST_F(StriperTestPP, RoundTripWriteFullPP) {
523534
TestAlarm alarm;
524535
my_completion2->wait_for_complete();
525536
}
537+
test_data.wait();
526538
bufferlist bl3;
527539
AioCompletion *my_completion3 =
528540
librados::Rados::aio_create_completion(&test_data, set_completion_complete);
@@ -556,6 +568,7 @@ TEST_F(StriperTest, RemoveTest) {
556568
TestAlarm alarm;
557569
ASSERT_EQ(0, rados_aio_wait_for_complete(my_completion));
558570
}
571+
test_data.wait();
559572
ASSERT_EQ(0, rados_aio_get_return_value(my_completion));
560573
rados_aio_release(my_completion);
561574
// check we get ENOENT on reading

0 commit comments

Comments
 (0)