Skip to content

Commit

Permalink
fixup
Browse files Browse the repository at this point in the history
  • Loading branch information
lukebakken committed Dec 9, 2024
1 parent 4cd27de commit 6354045
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 24 deletions.
20 changes: 8 additions & 12 deletions projects/Test/Common/IntegrationFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,9 @@ public abstract class IntegrationFixture : IAsyncLifetime
public static readonly TimeSpan RecoveryInterval = TimeSpan.FromSeconds(2);
public static readonly TimeSpan TestTimeout = TimeSpan.FromSeconds(5);
public static readonly TimeSpan RequestedConnectionTimeout = TimeSpan.FromSeconds(1);
public static readonly Random S_Random;

static IntegrationFixture()
{

#if NET
S_Random = Random.Shared;
#else
S_Random = new Random();
#endif
s_isRunningInCI = InitIsRunningInCI();
s_isVerbose = InitIsVerbose();

Expand Down Expand Up @@ -450,12 +443,12 @@ protected async Task WithTemporaryChannelAsync(Func<IChannel, Task> action)

protected string GenerateExchangeName()
{
return $"{_testDisplayName}-exchange-{Util.Now}-{GenerateShortUuid()}";
return $"{_testDisplayName}-exchange-{Util.Now}-{Util.GenerateShortUuid()}";
}

protected string GenerateQueueName()
{
return $"{_testDisplayName}-queue-{Util.Now}-{GenerateShortUuid()}";
return $"{_testDisplayName}-queue-{Util.Now}-{Util.GenerateShortUuid()}";
}

protected Task WithTemporaryNonExclusiveQueueAsync(Func<IChannel, string, Task> action)
Expand Down Expand Up @@ -631,10 +624,15 @@ protected static string GetUniqueString(ushort length)
protected static byte[] GetRandomBody(ushort size = 1024)
{
byte[] body = new byte[size];
S_Random.NextBytes(body);
Util.S_Random.NextBytes(body);
return body;
}

protected static int RandomNext(int min, int max)
{
return Util.S_Random.Next(min, max);
}

protected static Task WaitForRecoveryAsync(IConnection conn)
{
TaskCompletionSource<bool> tcs = PrepareForRecovery((AutorecoveringConnection)conn);
Expand Down Expand Up @@ -664,7 +662,5 @@ protected void LogWarning(string text,
_output.WriteLine("::warning file={0},line={1}::{2} {3}",
Path.GetFileName(file), line, member, text);
}

protected static string GenerateShortUuid() => S_Random.Next().ToString("x");
}
}
22 changes: 22 additions & 0 deletions projects/Test/Common/Util.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ namespace Test
{
public class Util : IDisposable
{
#if NET
private static readonly Random s_random = Random.Shared;
#else
[ThreadStatic]
private static Random s_random;
#endif

private readonly ITestOutputHelper _output;
private readonly ManagementClient _managementClient;
private static readonly bool s_isWindows = false;
Expand Down Expand Up @@ -41,6 +48,21 @@ public Util(ITestOutputHelper output, string managementUsername, string manageme
_managementClient = new ManagementClient(managementUri, managementUsername, managementPassword);
}

public static Random S_Random
{
get
{
#if NET
return s_random;
#else
s_random ??= new Random();
return s_random;
#endif
}
}

public static string GenerateShortUuid() => S_Random.Next().ToString("x");

public static string Now => DateTime.UtcNow.ToString("s", CultureInfo.InvariantCulture);

public static bool IsWindows => s_isWindows;
Expand Down
2 changes: 1 addition & 1 deletion projects/Test/Integration/TestAsyncConsumer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ await _channel.BasicPublishAsync(exchange: string.Empty, routingKey: queueName,

private async Task ValidateConsumerDispatchConcurrency()
{
ushort expectedConsumerDispatchConcurrency = (ushort)S_Random.Next(3, 10);
ushort expectedConsumerDispatchConcurrency = (ushort)RandomNext(3, 10);
AutorecoveringChannel autorecoveringChannel = (AutorecoveringChannel)_channel;
Assert.Equal(ConsumerDispatchConcurrency, autorecoveringChannel.ConsumerDispatcher.Concurrency);
Assert.Equal(_consumerDispatchConcurrency, autorecoveringChannel.ConsumerDispatcher.Concurrency);
Expand Down
2 changes: 1 addition & 1 deletion projects/Test/Integration/TestConcurrentAccessBase.cs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ protected async Task TestConcurrentOperationsAsync(Func<Task> action, int iterat
{
for (int j = 0; j < iterations; j++)
{
await Task.Delay(S_Random.Next(1, 10));
await Task.Delay(RandomNext(1, 10));
tasks.Add(action());
}
}
Expand Down
4 changes: 2 additions & 2 deletions projects/Test/Integration/TestExchangeDeclare.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ async Task f()
{
try
{
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));
string exchangeName = GenerateExchangeName();
await _channel.ExchangeDeclareAsync(exchange: exchangeName, type: "fanout", false, false);
await _channel.ExchangeBindAsync(destination: ex_destination, source: exchangeName, routingKey: "unused");
Expand All @@ -87,7 +87,7 @@ async Task f()
{
try
{
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));
await _channel.ExchangeUnbindAsync(destination: ex_destination, source: exchangeName, routingKey: "unused",
noWait: false, arguments: null);
await _channel.ExchangeDeleteAsync(exchange: exchangeName, ifUnused: false);
Expand Down
8 changes: 4 additions & 4 deletions projects/Test/Integration/TestQueueDeclare.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ async Task f()
{
// sleep for a random amount of time to increase the chances
// of thread interleaving. MK.
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));
string queueName = GenerateQueueName();
QueueDeclareOk r = await _channel.QueueDeclareAsync(queue: queueName,
durable: false, exclusive: true, autoDelete: false);
Expand Down Expand Up @@ -136,7 +136,7 @@ async Task f()
string qname = q;
try
{
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));

QueueDeclareOk r = await _channel.QueueDeclarePassiveAsync(qname);
Assert.Equal(qname, r.QueueName);
Expand Down Expand Up @@ -176,7 +176,7 @@ public async Task TestConcurrentQueueDeclare()
{
// sleep for a random amount of time to increase the chances
// of thread interleaving. MK.
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));
string q = GenerateQueueName();
await _channel.QueueDeclareAsync(q, false, false, false);
queueNames.Add(q);
Expand All @@ -201,7 +201,7 @@ public async Task TestConcurrentQueueDeclare()
{
try
{
await Task.Delay(S_Random.Next(5, 50));
await Task.Delay(RandomNext(5, 50));
await _channel.QueueDeleteAsync(queueName);
}
catch (NotSupportedException e)
Expand Down
6 changes: 3 additions & 3 deletions projects/Test/Integration/TestToxiproxy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ public async Task TestThatStoppedSocketResultsInHeartbeatTimeout()

Assert.True(await tcs.Task);

string toxicName = $"rmq-localhost-timeout-{Util.Now}-{GenerateShortUuid()}";
string toxicName = $"rmq-localhost-timeout-{Util.Now}-{Util.GenerateShortUuid()}";
var timeoutToxic = new TimeoutToxic
{
Name = toxicName
Expand Down Expand Up @@ -275,7 +275,7 @@ public async Task TestTcpReset_GH1464()

Assert.True(await channelCreatedTcs.Task);

string toxicName = $"rmq-localhost-reset_peer-{Util.Now}-{GenerateShortUuid()}";
string toxicName = $"rmq-localhost-reset_peer-{Util.Now}-{Util.GenerateShortUuid()}";
var resetPeerToxic = new ResetPeerToxic
{
Name = toxicName
Expand Down Expand Up @@ -360,7 +360,7 @@ public async Task TestPublisherConfirmationThrottling()

await channelCreatedTcs.Task;

string toxicName = $"rmq-localhost-bandwidth-{Util.Now}-{GenerateShortUuid()}";
string toxicName = $"rmq-localhost-bandwidth-{Util.Now}-{Util.GenerateShortUuid()}";
var bandwidthToxic = new BandwidthToxic
{
Name = toxicName
Expand Down
2 changes: 1 addition & 1 deletion projects/Test/Integration/ToxiproxyManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public ToxiproxyManager(string testDisplayName, bool isRunningInCI, bool isWindo

public async Task InitializeAsync()
{
_proxy.Name = $"{ProxyNamePrefix}-{_testDisplayName}-{Util.Now}";
_proxy.Name = $"{ProxyNamePrefix}-{_testDisplayName}-{Util.Now}-{Util.GenerateShortUuid()}";

try
{
Expand Down

0 comments on commit 6354045

Please sign in to comment.