Skip to content

Commit 091e8ef

Browse files
authored
[Storage] Perf test client ctors. (Azure#21671)
* blob tests. * datalake. * shares. * pr feedback.
1 parent c6bc5dd commit 091e8ef

File tree

4 files changed

+229
-4
lines changed

4 files changed

+229
-4
lines changed

sdk/storage/Azure.Storage.Blobs/perf/Azure.Storage.Blobs.Perf/Infrastructure/BlobTest.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@ namespace Azure.Storage.Blobs.Perf
99
{
1010
public abstract class BlobTest<TOptions> : ContainerTest<TOptions> where TOptions : SizeOptions
1111
{
12+
protected static string BlobName { get; } = $"Azure.Storage.Blobs.Perf.BlobTest-{Guid.NewGuid()}";
1213
protected BlobClient BlobClient { get; private set; }
1314
protected BlockBlobClient BlockBlobClient { get; private set; }
1415

1516
public BlobTest(TOptions options) : base(options)
1617
{
17-
var blobName = $"Azure.Storage.Blobs.Perf.BlobTest-{Guid.NewGuid()}";
18-
19-
BlobClient = BlobContainerClient.GetBlobClient(blobName);
20-
BlockBlobClient = BlobContainerClient.GetBlockBlobClient(blobName);
18+
BlobClient = BlobContainerClient.GetBlobClient(BlobName);
19+
BlockBlobClient = BlobContainerClient.GetBlockBlobClient(BlobName);
2120
}
2221
}
2322
}
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
using Azure.Core;
8+
using Azure.Identity;
9+
using Azure.Storage.Blobs.Specialized;
10+
using Azure.Test.Perf;
11+
12+
namespace Azure.Storage.Blobs.Perf.Scenarios
13+
{
14+
/// <summary>
15+
/// This tests various client ctors and hierarchy traversal.
16+
/// </summary>
17+
public class CreateClients : BlobTest<SizeOptions>
18+
{
19+
private static readonly string s_connectionString = $"DefaultEndpointsProtocol=https;AccountName=foo;AccountKey={Convert.ToBase64String(Guid.NewGuid().ToByteArray())};EndpointSuffix=core.windows.net";
20+
private static readonly AzureSasCredential s_azureSasCredential = new AzureSasCredential("foo");
21+
private static readonly TokenCredential s_tokenCredential = new ClientSecretCredential("foo", "bar", "baz");
22+
23+
public CreateClients(SizeOptions options) : base(options)
24+
{
25+
}
26+
27+
#pragma warning disable CA1806 // Do not ignore method results
28+
public override void Run(CancellationToken cancellationToken)
29+
{
30+
// traverse hierarchy down
31+
BlobServiceClient.GetBlobContainerClient(ContainerName);
32+
BlobContainerClient.GetBlobClient(BlobName);
33+
BlobContainerClient.GetBlobBaseClient(BlobName);
34+
BlobContainerClient.GetBlockBlobClient(BlobName);
35+
BlobContainerClient.GetPageBlobClient(BlobName);
36+
BlobContainerClient.GetAppendBlobClient(BlobName);
37+
38+
// traverse hierarchy up
39+
BlobClient.GetParentBlobContainerClient();
40+
BlobContainerClient.GetParentBlobServiceClient();
41+
42+
// BlobServiceClient ctors
43+
new BlobServiceClient(s_connectionString);
44+
new BlobServiceClient(BlobServiceClient.Uri);
45+
new BlobServiceClient(BlobServiceClient.Uri, s_azureSasCredential);
46+
new BlobServiceClient(BlobServiceClient.Uri, s_tokenCredential);
47+
new BlobServiceClient(BlobServiceClient.Uri, StorageSharedKeyCredential);
48+
49+
// BlobContainerClient ctors
50+
new BlobContainerClient(s_connectionString, ContainerName);
51+
new BlobContainerClient(BlobContainerClient.Uri);
52+
new BlobContainerClient(BlobContainerClient.Uri, s_azureSasCredential);
53+
new BlobContainerClient(BlobContainerClient.Uri, s_tokenCredential);
54+
new BlobContainerClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
55+
56+
// BlobClient ctors
57+
new BlobClient(s_connectionString, ContainerName, BlobName);
58+
new BlobClient(BlobContainerClient.Uri);
59+
new BlobClient(BlobContainerClient.Uri, s_azureSasCredential);
60+
new BlobClient(BlobContainerClient.Uri, s_tokenCredential);
61+
new BlobClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
62+
63+
// BlobBaseClient ctors
64+
new BlobBaseClient(s_connectionString, ContainerName, BlobName);
65+
new BlobBaseClient(BlobContainerClient.Uri);
66+
new BlobBaseClient(BlobContainerClient.Uri, s_azureSasCredential);
67+
new BlobBaseClient(BlobContainerClient.Uri, s_tokenCredential);
68+
new BlobBaseClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
69+
70+
// AppendBlobClient ctors
71+
new AppendBlobClient(s_connectionString, ContainerName, BlobName);
72+
new AppendBlobClient(BlobContainerClient.Uri);
73+
new AppendBlobClient(BlobContainerClient.Uri, s_azureSasCredential);
74+
new AppendBlobClient(BlobContainerClient.Uri, s_tokenCredential);
75+
new AppendBlobClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
76+
77+
// BlockBlobClient ctors
78+
new BlockBlobClient(s_connectionString, ContainerName, BlobName);
79+
new BlockBlobClient(BlobContainerClient.Uri);
80+
new BlockBlobClient(BlobContainerClient.Uri, s_azureSasCredential);
81+
new BlockBlobClient(BlobContainerClient.Uri, s_tokenCredential);
82+
new BlockBlobClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
83+
84+
// PageBlobClient ctors
85+
new PageBlobClient(s_connectionString, ContainerName, BlobName);
86+
new PageBlobClient(BlobContainerClient.Uri);
87+
new PageBlobClient(BlobContainerClient.Uri, s_azureSasCredential);
88+
new PageBlobClient(BlobContainerClient.Uri, s_tokenCredential);
89+
new PageBlobClient(BlobContainerClient.Uri, StorageSharedKeyCredential);
90+
}
91+
#pragma warning restore CA1806 // Do not ignore method results
92+
93+
public override Task RunAsync(CancellationToken cancellationToken)
94+
{
95+
Run(cancellationToken);
96+
return Task.CompletedTask;
97+
}
98+
}
99+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
using Azure.Core;
8+
using Azure.Identity;
9+
using Azure.Test.Perf;
10+
11+
namespace Azure.Storage.Files.DataLake.Perf.Scenarios
12+
{
13+
/// <summary>
14+
/// This tests various client ctors and hierarchy traversal.
15+
/// </summary>
16+
public class CreateClients : PerfTest<PerfOptions>
17+
{
18+
private static readonly TokenCredential s_tokenCredential = new ClientSecretCredential("foo", "bar", "baz");
19+
private static readonly PerfTestEnvironment s_testEnvironment = PerfTestEnvironment.Instance;
20+
private static readonly Uri s_fileSystemUri = new DataLakeUriBuilder(s_testEnvironment.DataLakeServiceUri) { FileSystemName = "foo" }.ToUri();
21+
private static readonly Uri s_directoryUri = new DataLakeUriBuilder(s_testEnvironment.DataLakeServiceUri) { FileSystemName = "foo", DirectoryOrFilePath = "bar" }.ToUri();
22+
private static readonly Uri s_fileUri = new DataLakeUriBuilder(s_testEnvironment.DataLakeServiceUri) { FileSystemName = "foo", DirectoryOrFilePath = "bar/baz" }.ToUri();
23+
24+
public CreateClients(PerfOptions options) : base(options)
25+
{
26+
}
27+
28+
#pragma warning disable CA1806 // Do not ignore method results
29+
public override void Run(CancellationToken cancellationToken)
30+
{
31+
var serviceClient = new DataLakeServiceClient(s_testEnvironment.DataLakeServiceUri);
32+
new DataLakeServiceClient(s_testEnvironment.DataLakeServiceUri, s_tokenCredential);
33+
new DataLakeServiceClient(s_testEnvironment.DataLakeServiceUri, s_testEnvironment.DataLakeCredential);
34+
35+
var fileSystemClient = new DataLakeFileSystemClient(s_fileSystemUri);
36+
new DataLakeFileSystemClient(s_fileSystemUri, s_tokenCredential);
37+
new DataLakeFileSystemClient(s_fileSystemUri, s_testEnvironment.DataLakeCredential);
38+
39+
var directoryClient = new DataLakeDirectoryClient(s_directoryUri);
40+
new DataLakeDirectoryClient(s_directoryUri, s_tokenCredential);
41+
new DataLakeDirectoryClient(s_directoryUri, s_testEnvironment.DataLakeCredential);
42+
43+
new DataLakeFileClient(s_fileUri);
44+
new DataLakeFileClient(s_fileUri, s_tokenCredential);
45+
new DataLakeFileClient(s_fileUri, s_testEnvironment.DataLakeCredential);
46+
47+
new DataLakePathClient(s_fileUri);
48+
new DataLakePathClient(s_fileUri, s_tokenCredential);
49+
new DataLakePathClient(s_fileUri, s_testEnvironment.DataLakeCredential);
50+
51+
serviceClient.GetFileSystemClient("foo");
52+
fileSystemClient.GetDirectoryClient("foo");
53+
fileSystemClient.GetFileClient("foo");
54+
directoryClient.GetFileClient("foo");
55+
}
56+
#pragma warning restore CA1806 // Do not ignore method results
57+
58+
public override Task RunAsync(CancellationToken cancellationToken)
59+
{
60+
Run(cancellationToken);
61+
return Task.CompletedTask;
62+
}
63+
}
64+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
using Azure.Test.Perf;
8+
9+
namespace Azure.Storage.Files.Shares.Perf.Scenarios
10+
{
11+
/// <summary>
12+
/// This tests various client ctors and hierarchy traversal.
13+
/// </summary>
14+
public class CreateClients : PerfTest<PerfOptions>
15+
{
16+
private static readonly string s_connectionString = $"DefaultEndpointsProtocol=https;AccountName=foo;AccountKey={Convert.ToBase64String(Guid.NewGuid().ToByteArray())};EndpointSuffix=core.windows.net";
17+
private static readonly Uri s_serviceUri = new Uri("https://foo.files.core.windows.net");
18+
private static readonly Uri s_shareUri = new Uri("https://foo.files.core.windows.net/foo");
19+
private static readonly Uri s_directoryUri = new Uri("https://foo.files.core.windows.net/foo/bar");
20+
private static readonly Uri s_fileUri = new Uri("https://foo.files.core.windows.net/foo/bar/baz");
21+
private static readonly AzureSasCredential s_azureSasCredential = new AzureSasCredential("foo");
22+
private static readonly StorageSharedKeyCredential s_storageSharedKey = new StorageSharedKeyCredential("foo", Convert.ToBase64String(Guid.NewGuid().ToByteArray()));
23+
24+
public CreateClients(PerfOptions options) : base(options)
25+
{
26+
}
27+
28+
#pragma warning disable CA1806 // Do not ignore method results
29+
public override void Run(CancellationToken cancellationToken)
30+
{
31+
var serviceClient = new ShareServiceClient(s_connectionString);
32+
new ShareServiceClient(s_serviceUri);
33+
new ShareServiceClient(s_serviceUri, s_azureSasCredential);
34+
new ShareServiceClient(s_serviceUri, s_storageSharedKey);
35+
36+
var shareClient = new ShareClient(s_connectionString, "foo");
37+
new ShareClient(s_shareUri);
38+
new ShareClient(s_shareUri, s_azureSasCredential);
39+
new ShareClient(s_shareUri, s_storageSharedKey);
40+
41+
var directoryClient = new ShareDirectoryClient(s_connectionString, "foo", "bar");
42+
new ShareDirectoryClient(s_directoryUri);
43+
new ShareDirectoryClient(s_directoryUri, s_azureSasCredential);
44+
new ShareDirectoryClient(s_directoryUri, s_storageSharedKey);
45+
46+
new ShareFileClient(s_connectionString, "foo", "bar/baz");
47+
new ShareFileClient(s_fileUri);
48+
new ShareFileClient(s_fileUri, s_azureSasCredential);
49+
new ShareFileClient(s_fileUri, s_storageSharedKey);
50+
51+
serviceClient.GetShareClient("foo");
52+
shareClient.GetDirectoryClient("bar");
53+
directoryClient.GetFileClient("baz");
54+
}
55+
#pragma warning restore CA1806 // Do not ignore method results
56+
57+
public override Task RunAsync(CancellationToken cancellationToken)
58+
{
59+
Run(cancellationToken);
60+
return Task.CompletedTask;
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)