| 60 | class MinioFixture : public benchmark::Fixture { |
| 61 | public: |
| 62 | void SetUp(const ::benchmark::State& state) override { |
| 63 | minio_.reset(new MinioTestServer()); |
| 64 | ASSERT_OK(minio_->Start(/*enable_tls=*/false)); |
| 65 | |
| 66 | const char* region_str = std::getenv(kEnvAwsRegion); |
| 67 | if (region_str) { |
| 68 | region_ = region_str; |
| 69 | std::cerr << "Using region from environment: " << region_ << std::endl; |
| 70 | } else { |
| 71 | std::cerr << "Using default region" << std::endl; |
| 72 | } |
| 73 | |
| 74 | const char* bucket_str = std::getenv(kEnvBucketName); |
| 75 | if (bucket_str) { |
| 76 | bucket_ = bucket_str; |
| 77 | std::cerr << "Using bucket from environment: " << bucket_ << std::endl; |
| 78 | } else { |
| 79 | bucket_ = "bucket"; |
| 80 | std::cerr << "Using default bucket: " << bucket_ << std::endl; |
| 81 | } |
| 82 | |
| 83 | client_config_.endpointOverride = ToAwsString(minio_->connect_string()); |
| 84 | client_config_.scheme = Aws::Http::Scheme::HTTP; |
| 85 | if (!region_.empty()) { |
| 86 | client_config_.region = ToAwsString(region_); |
| 87 | } |
| 88 | client_config_.retryStrategy = std::make_shared<ConnectRetryStrategy>(); |
| 89 | credentials_ = {ToAwsString(minio_->access_key()), ToAwsString(minio_->secret_key())}; |
| 90 | bool use_virtual_addressing = false; |
| 91 | client_.reset( |
| 92 | new Aws::S3::S3Client(credentials_, client_config_, |
| 93 | Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Never, |
| 94 | use_virtual_addressing)); |
| 95 | |
| 96 | MakeFileSystem(); |
| 97 | |
| 98 | const char* skip_str = std::getenv(kEnvSkipSetup); |
| 99 | const std::string skip = skip_str ? std::string(skip_str) : ""; |
| 100 | if (!skip.empty()) { |
| 101 | std::cerr << "Skipping creation of bucket/objects as requested" << std::endl; |
| 102 | } else { |
| 103 | ASSERT_OK(MakeBucket()); |
| 104 | ASSERT_OK(MakeObject("bytes_1mib", 1024 * 1024)); |
| 105 | ASSERT_OK(MakeObject("bytes_100mib", 100 * 1024 * 1024)); |
| 106 | ASSERT_OK(MakeObject("bytes_500mib", 500 * 1024 * 1024)); |
| 107 | ASSERT_OK(MakeParquetObject(bucket_ + "/pq_c402_r250k", 400, 250000)); |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | void MakeFileSystem() { |
| 112 | options_.ConfigureAccessKey(minio_->access_key(), minio_->secret_key()); |
no test coverage detected