| 671 | }); |
| 672 | |
| 673 | TEST_P(SyncAsync, ExceptionOnHead) { |
| 674 | setInjectionModel(std::make_shared<MockS3::HeadObjectFailIngection>()); |
| 675 | |
| 676 | getSettings()[Setting::s3_check_objects_after_upload] = true; |
| 677 | |
| 678 | EXPECT_THROW({ |
| 679 | try { |
| 680 | auto buffer = getWriteBuffer("exception_on_head_1"); |
| 681 | buffer->write('A'); |
| 682 | buffer->next(); |
| 683 | |
| 684 | getAsyncPolicy().setAutoExecute(true); |
| 685 | buffer->finalize(); |
| 686 | } |
| 687 | catch( const DB::Exception& e ) |
| 688 | { |
| 689 | ASSERT_EQ(ErrorCodes::S3_ERROR, e.code()); |
| 690 | EXPECT_THAT(e.what(), testing::HasSubstr("Immediately after upload:")); |
| 691 | throw; |
| 692 | } |
| 693 | }, DB::S3Exception); |
| 694 | } |
| 695 | |
| 696 | TEST_P(SyncAsync, ExceptionOnPut) { |
| 697 | setInjectionModel(std::make_shared<MockS3::PutObjectFailIngection>()); |
nothing calls this directly
no test coverage detected