Commit 67d23ca1 authored by Nick Craver's avatar Nick Craver

Tests host:port cleanup

There were several mismatches here...this should help avoid future ones.
parent 72b1cbab
...@@ -8,7 +8,7 @@ public class AsyncTests : TestBase ...@@ -8,7 +8,7 @@ public class AsyncTests : TestBase
{ {
public AsyncTests(ITestOutputHelper output) : base (output) { } public AsyncTests(ITestOutputHelper output) : base (output) { }
protected override string GetConfiguration() => TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort; protected override string GetConfiguration() => TestConfig.Current.MasterServerAndPort;
#if DEBUG // IRedisServerDebug and AllowConnect are only available if DEBUG is defined #if DEBUG // IRedisServerDebug and AllowConnect are only available if DEBUG is defined
[Fact] [Fact]
......
...@@ -7,7 +7,7 @@ namespace StackExchange.Redis.Tests ...@@ -7,7 +7,7 @@ namespace StackExchange.Redis.Tests
{ {
public class ConnectionShutdown : TestBase public class ConnectionShutdown : TestBase
{ {
protected override string GetConfiguration() => TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort; protected override string GetConfiguration() => TestConfig.Current.MasterServerAndPort;
public ConnectionShutdown(ITestOutputHelper output) : base (output) { } public ConnectionShutdown(ITestOutputHelper output) : base (output) { }
[Fact(Skip="Unfriendly")] [Fact(Skip="Unfriendly")]
...@@ -53,4 +53,4 @@ public void ShutdownRaisesConnectionFailedAndRestore() ...@@ -53,4 +53,4 @@ public void ShutdownRaisesConnectionFailedAndRestore()
} }
} }
} }
} }
\ No newline at end of file
...@@ -42,13 +42,16 @@ public class Config ...@@ -42,13 +42,16 @@ public class Config
public string MasterServer { get; set; } = "127.0.0.1"; public string MasterServer { get; set; } = "127.0.0.1";
public int MasterPort { get; set; } = 6379; public int MasterPort { get; set; } = 6379;
public string MasterServerAndPort => MasterServer + ":" + MasterPort.ToString();
public string SlaveServer { get; set; } = "127.0.0.1"; public string SlaveServer { get; set; } = "127.0.0.1";
public int SlavePort { get; set; } = 6380; public int SlavePort { get; set; } = 6380;
public string SlaveServerAndPort => SlaveServer + ":" + SlavePort.ToString();
public string SecureServer { get; set; } = "127.0.0.1"; public string SecureServer { get; set; } = "127.0.0.1";
public int SecurePort { get; set; } = 6381; public int SecurePort { get; set; } = 6381;
public string SecurePassword { get; set; } = "changeme"; public string SecurePassword { get; set; } = "changeme";
public string SecureServerAndPort => SecureServer + ":" + SecurePort.ToString();
public string IPv4Server { get; set; } = "127.0.0.1"; public string IPv4Server { get; set; } = "127.0.0.1";
public int IPv4Port { get; set; } = 6379; public int IPv4Port { get; set; } = 6379;
......
...@@ -28,7 +28,7 @@ public void ConfigurationOptions_UnspecifiedDefaultDb() ...@@ -28,7 +28,7 @@ public void ConfigurationOptions_UnspecifiedDefaultDb()
var log = new StringWriter(); var log = new StringWriter();
try try
{ {
using (var conn = ConnectionMultiplexer.Connect($"{TestConfig.Current.MasterServer}:{TestConfig.Current.MasterPort}", log)) { using (var conn = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServerAndPort, log)) {
var db = conn.GetDatabase(); var db = conn.GetDatabase();
Assert.Equal(0, db.Database); Assert.Equal(0, db.Database);
} }
...@@ -45,7 +45,7 @@ public void ConfigurationOptions_SpecifiedDefaultDb() ...@@ -45,7 +45,7 @@ public void ConfigurationOptions_SpecifiedDefaultDb()
var log = new StringWriter(); var log = new StringWriter();
try try
{ {
using (var conn = ConnectionMultiplexer.Connect($"{TestConfig.Current.MasterServer}:{TestConfig.Current.MasterPort},defaultDatabase=3", log)) { using (var conn = ConnectionMultiplexer.Connect($"{TestConfig.Current.MasterServerAndPort},defaultDatabase=3", log)) {
var db = conn.GetDatabase(); var db = conn.GetDatabase();
Assert.Equal(3, db.Database); Assert.Equal(3, db.Database);
} }
......
using System; using System;
using System.Linq; using System.Linq;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
namespace StackExchange.Redis.Tests.Issues namespace StackExchange.Redis.Tests.Issues
{ {
public class Issue182 : TestBase public class Issue182 : TestBase
{ {
protected override string GetConfiguration() => $"{TestConfig.Current.MasterServer}:{TestConfig.Current.MasterPort},responseTimeout=10000"; protected override string GetConfiguration() => $"{TestConfig.Current.MasterServerAndPort},responseTimeout=10000";
public Issue182(ITestOutputHelper output) : base (output) { } public Issue182(ITestOutputHelper output) : base (output) { }
[FactLongRunning] [FactLongRunning]
public void SetMembers() public void SetMembers()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
conn.ConnectionFailed += (s, a) => conn.ConnectionFailed += (s, a) =>
{ {
Output.WriteLine(a.FailureType.ToString()); Output.WriteLine(a.FailureType.ToString());
Output.WriteLine(a.Exception.Message); Output.WriteLine(a.Exception.Message);
Output.WriteLine(a.Exception.StackTrace); Output.WriteLine(a.Exception.StackTrace);
}; };
var db = conn.GetDatabase(); var db = conn.GetDatabase();
var key = Me(); var key = Me();
const int count = (int)5e6; const int count = (int)5e6;
db.KeyDeleteAsync(key).Wait(); db.KeyDeleteAsync(key).Wait();
foreach (var _ in Enumerable.Range(0, count)) foreach (var _ in Enumerable.Range(0, count))
db.SetAdd(key, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget); db.SetAdd(key, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
Assert.Equal(count, db.SetLengthAsync(key).Result); // SCARD for set Assert.Equal(count, db.SetLengthAsync(key).Result); // SCARD for set
var task = db.SetMembersAsync(key); var task = db.SetMembersAsync(key);
task.Wait(); task.Wait();
Assert.Equal(count, task.Result.Length); // SMEMBERS result length Assert.Equal(count, task.Result.Length); // SMEMBERS result length
} }
} }
[FactLongRunning] [FactLongRunning]
public void SetUnion() public void SetUnion()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(); var db = conn.GetDatabase();
var key1 = Me() + ":1"; var key1 = Me() + ":1";
var key2 = Me() + ":2"; var key2 = Me() + ":2";
var dstkey = Me() + ":dst"; var dstkey = Me() + ":dst";
db.KeyDeleteAsync(key1).Wait(); db.KeyDeleteAsync(key1).Wait();
db.KeyDeleteAsync(key2).Wait(); db.KeyDeleteAsync(key2).Wait();
db.KeyDeleteAsync(dstkey).Wait(); db.KeyDeleteAsync(dstkey).Wait();
const int count = (int)5e6; const int count = (int)5e6;
foreach (var _ in Enumerable.Range(0, count)) foreach (var _ in Enumerable.Range(0, count))
{ {
db.SetAdd(key1, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget); db.SetAdd(key1, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
db.SetAdd(key2, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget); db.SetAdd(key2, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
} }
Assert.Equal(count, db.SetLengthAsync(key1).Result); // SCARD for set 1 Assert.Equal(count, db.SetLengthAsync(key1).Result); // SCARD for set 1
Assert.Equal(count, db.SetLengthAsync(key2).Result); // SCARD for set 2 Assert.Equal(count, db.SetLengthAsync(key2).Result); // SCARD for set 2
db.SetCombineAndStoreAsync(SetOperation.Union, dstkey, key1, key2).Wait(); db.SetCombineAndStoreAsync(SetOperation.Union, dstkey, key1, key2).Wait();
var dstLen = db.SetLength(dstkey); var dstLen = db.SetLength(dstkey);
Assert.Equal(count * 2, dstLen); // SCARD for destination set Assert.Equal(count * 2, dstLen); // SCARD for destination set
} }
} }
} }
} }
\ No newline at end of file
...@@ -29,7 +29,7 @@ public void DefaultValue_IsTrue() ...@@ -29,7 +29,7 @@ public void DefaultValue_IsTrue()
[Fact] [Fact]
public void PreserveAsyncOrder_SetConnectionMultiplexerProperty() public void PreserveAsyncOrder_SetConnectionMultiplexerProperty()
{ {
var multiplexer = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort + ",preserveAsyncOrder=false"); var multiplexer = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServerAndPort + ",preserveAsyncOrder=false");
Assert.False(multiplexer.PreserveAsyncOrder); Assert.False(multiplexer.PreserveAsyncOrder);
} }
} }
......
...@@ -7,7 +7,7 @@ namespace StackExchange.Redis.Tests.Issues ...@@ -7,7 +7,7 @@ namespace StackExchange.Redis.Tests.Issues
{ {
public class SO25567566 : TestBase public class SO25567566 : TestBase
{ {
protected override string GetConfiguration() => $"{TestConfig.Current.MasterServer}:{TestConfig.Current.MasterPort}"; protected override string GetConfiguration() => TestConfig.Current.MasterServerAndPort;
public SO25567566(ITestOutputHelper output) : base(output) { } public SO25567566(ITestOutputHelper output) : base(output) { }
[FactLongRunning] [FactLongRunning]
...@@ -70,4 +70,4 @@ private async Task<string> DoStuff(ConnectionMultiplexer conn) ...@@ -70,4 +70,4 @@ private async Task<string> DoStuff(ConnectionMultiplexer conn)
} }
} }
} }
} }
\ No newline at end of file
...@@ -34,7 +34,7 @@ public void RandomKey() ...@@ -34,7 +34,7 @@ public void RandomKey()
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
var db = conn.GetDatabase(); var db = conn.GetDatabase();
conn.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).FlushDatabase(); conn.GetServer(TestConfig.Current.MasterServerAndPort).FlushDatabase();
string anyKey = db.KeyRandom(); string anyKey = db.KeyRandom();
Assert.Null(anyKey); Assert.Null(anyKey);
......
...@@ -9,7 +9,7 @@ namespace StackExchange.Redis.Tests ...@@ -9,7 +9,7 @@ namespace StackExchange.Redis.Tests
{ {
public class Locking : TestBase public class Locking : TestBase
{ {
protected override string GetConfiguration() => TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort; protected override string GetConfiguration() => TestConfig.Current.MasterServerAndPort;
public Locking(ITestOutputHelper output) : base (output) { } public Locking(ITestOutputHelper output) : base (output) { }
public enum TestMode public enum TestMode
......
...@@ -12,7 +12,7 @@ namespace StackExchange.Redis.Tests ...@@ -12,7 +12,7 @@ namespace StackExchange.Redis.Tests
public class MultiMaster : TestBase public class MultiMaster : TestBase
{ {
protected override string GetConfiguration() => protected override string GetConfiguration() =>
TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort + "," + TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort + ",password=" + TestConfig.Current.SecurePassword; TestConfig.Current.MasterServerAndPort + "," + TestConfig.Current.SecureServerAndPort + ",password=" + TestConfig.Current.SecurePassword;
public MultiMaster(ITestOutputHelper output) : base (output) { } public MultiMaster(ITestOutputHelper output) : base (output) { }
...@@ -39,8 +39,8 @@ public async Task DeslaveGoesToPrimary() ...@@ -39,8 +39,8 @@ public async Task DeslaveGoesToPrimary()
ConfigurationOptions config = GetMasterSlaveConfig(); ConfigurationOptions config = GetMasterSlaveConfig();
using (var conn = ConnectionMultiplexer.Connect(config)) using (var conn = ConnectionMultiplexer.Connect(config))
{ {
var primary = conn.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort); var primary = conn.GetServer(TestConfig.Current.MasterServerAndPort);
var secondary = conn.GetServer(TestConfig.Current.SlaveServer, TestConfig.Current.SlavePort); var secondary = conn.GetServer(TestConfig.Current.SlaveServerAndPort);
primary.Ping(); primary.Ping();
secondary.Ping(); secondary.Ping();
...@@ -58,7 +58,7 @@ public async Task DeslaveGoesToPrimary() ...@@ -58,7 +58,7 @@ public async Task DeslaveGoesToPrimary()
conn.Configure(writer); conn.Configure(writer);
string log = writer.ToString(); string log = writer.ToString();
Assert.True(log.Contains("tie-break is unanimous at " + TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort), "unanimous"); Assert.True(log.Contains("tie-break is unanimous at " + TestConfig.Current.MasterServerAndPort), "unanimous");
} }
// k, so we know everyone loves 6379; is that what we get? // k, so we know everyone loves 6379; is that what we get?
...@@ -89,8 +89,8 @@ public async Task DeslaveGoesToPrimary() ...@@ -89,8 +89,8 @@ public async Task DeslaveGoesToPrimary()
// server topology changes from failures to recognize those changes // server topology changes from failures to recognize those changes
using (var conn2 = ConnectionMultiplexer.Connect(config)) using (var conn2 = ConnectionMultiplexer.Connect(config))
{ {
var primary2 = conn.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort); var primary2 = conn.GetServer(TestConfig.Current.MasterServerAndPort);
var secondary2 = conn.GetServer(TestConfig.Current.SlaveServer, TestConfig.Current.SlavePort); var secondary2 = conn.GetServer(TestConfig.Current.SlaveServerAndPort);
Writer.WriteLine($"Check: {primary2.EndPoint}: {primary2.ServerType}, Mode: {(primary2.IsSlave ? "Slave" : "Master")}"); Writer.WriteLine($"Check: {primary2.EndPoint}: {primary2.ServerType}, Mode: {(primary2.IsSlave ? "Slave" : "Master")}");
Writer.WriteLine($"Check: {secondary2.EndPoint}: {secondary2.ServerType}, Mode: {(secondary2.IsSlave ? "Slave" : "Master")}"); Writer.WriteLine($"Check: {secondary2.EndPoint}: {secondary2.ServerType}, Mode: {(secondary2.IsSlave ? "Slave" : "Master")}");
...@@ -143,15 +143,15 @@ public void TestMultiNoTieBreak() ...@@ -143,15 +143,15 @@ public void TestMultiNoTieBreak()
public static IEnumerable<object[]> GetConnections() public static IEnumerable<object[]> GetConnections()
{ {
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort }; yield return new object[] { TestConfig.Current.MasterServerAndPort, TestConfig.Current.MasterServerAndPort, TestConfig.Current.MasterServerAndPort };
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort }; yield return new object[] { TestConfig.Current.SecureServerAndPort, TestConfig.Current.SecureServerAndPort, TestConfig.Current.SecureServerAndPort };
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, null }; yield return new object[] { TestConfig.Current.SecureServerAndPort, TestConfig.Current.MasterServerAndPort, null };
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, null }; yield return new object[] { TestConfig.Current.MasterServerAndPort, TestConfig.Current.SecureServerAndPort, null };
yield return new object[] { null, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort }; yield return new object[] { null, TestConfig.Current.MasterServerAndPort, TestConfig.Current.MasterServerAndPort };
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort, null, TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort }; yield return new object[] { TestConfig.Current.MasterServerAndPort, null, TestConfig.Current.MasterServerAndPort };
yield return new object[] { null, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort }; yield return new object[] { null, TestConfig.Current.SecureServerAndPort, TestConfig.Current.SecureServerAndPort };
yield return new object[] { TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort, null, TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort }; yield return new object[] { TestConfig.Current.SecureServerAndPort, null, TestConfig.Current.SecureServerAndPort };
yield return new object[] { null, null, null }; yield return new object[] { null, null, null };
} }
...@@ -160,11 +160,11 @@ public void TestMultiWithTiebreak(string a, string b, string elected) ...@@ -160,11 +160,11 @@ public void TestMultiWithTiebreak(string a, string b, string elected)
{ {
const string TieBreak = "__tie__"; const string TieBreak = "__tie__";
// set the tie-breakers to the expected state // set the tie-breakers to the expected state
using (var aConn = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort)) using (var aConn = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServerAndPort))
{ {
aConn.GetDatabase().StringSet(TieBreak, a); aConn.GetDatabase().StringSet(TieBreak, a);
} }
using (var aConn = ConnectionMultiplexer.Connect(TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort + ",password=" + TestConfig.Current.SecurePassword)) using (var aConn = ConnectionMultiplexer.Connect(TestConfig.Current.SecureServerAndPort + ",password=" + TestConfig.Current.SecurePassword))
{ {
aConn.GetDatabase().StringSet(TieBreak, b); aConn.GetDatabase().StringSet(TieBreak, b);
} }
......
using System.IO; using System.IO;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
...@@ -13,7 +14,7 @@ public class PubSubNonParallel : TestBase ...@@ -13,7 +14,7 @@ public class PubSubNonParallel : TestBase
[Theory] [Theory]
[InlineData(false)] [InlineData(false)]
[InlineData(true)] [InlineData(true)]
public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager) public async Task SubscriptionsSurviveMasterSwitchAsync(bool useSharedSocketManager)
{ {
using (var a = Create(allowAdmin: true, useSharedSocketManager: useSharedSocketManager)) using (var a = Create(allowAdmin: true, useSharedSocketManager: useSharedSocketManager))
using (var b = Create(allowAdmin: true, useSharedSocketManager: useSharedSocketManager)) using (var b = Create(allowAdmin: true, useSharedSocketManager: useSharedSocketManager))
...@@ -42,10 +43,10 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager) ...@@ -42,10 +43,10 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager)
Interlocked.Increment(ref bCount); Interlocked.Increment(ref bCount);
}); });
Assert.False(a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).IsSlave, TestConfig.Current.MasterPort + " is master via a"); Assert.False(a.GetServer(TestConfig.Current.MasterServerAndPort).IsSlave, $"{TestConfig.Current.MasterServerAndPort} should be master via a");
Assert.True(a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.SlavePort).IsSlave, TestConfig.Current.SlavePort + " is slave via a"); Assert.True(a.GetServer(TestConfig.Current.SlaveServerAndPort).IsSlave, $"{TestConfig.Current.SlaveServerAndPort} should be slave via a");
Assert.False(b.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).IsSlave, TestConfig.Current.MasterPort + " is master via b"); Assert.False(b.GetServer(TestConfig.Current.MasterServerAndPort).IsSlave, $"{TestConfig.Current.MasterServerAndPort} should be master via b");
Assert.True(b.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.SlavePort).IsSlave, TestConfig.Current.SlavePort + " is slave via b"); Assert.True(b.GetServer(TestConfig.Current.SlaveServerAndPort).IsSlave, $"{TestConfig.Current.SlaveServerAndPort} should be slave via b");
var epA = subA.SubscribedEndpoint(channel); var epA = subA.SubscribedEndpoint(channel);
var epB = subB.SubscribedEndpoint(channel); var epB = subB.SubscribedEndpoint(channel);
...@@ -68,18 +69,18 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager) ...@@ -68,18 +69,18 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager)
Output.WriteLine("Changing master..."); Output.WriteLine("Changing master...");
using (var sw = new StringWriter()) using (var sw = new StringWriter())
{ {
a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.SlavePort).MakeMaster(ReplicationChangeOptions.All, sw); a.GetServer(TestConfig.Current.SlaveServerAndPort).MakeMaster(ReplicationChangeOptions.All, sw);
Output.WriteLine(sw.ToString()); Output.WriteLine(sw.ToString());
} }
subA.Ping(); subA.Ping();
subB.Ping(); subB.Ping();
Output.WriteLine("Pausing..."); Output.WriteLine("Pausing...");
Thread.Sleep(2000); await Task.Delay(4000).ForAwait();
Assert.True(a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).IsSlave, TestConfig.Current.MasterPort + " is slave via a"); Assert.True(a.GetServer(TestConfig.Current.MasterServerAndPort).IsSlave, $"{TestConfig.Current.MasterServerAndPort} should be a slave via a");
Assert.False(a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.SlavePort).IsSlave, TestConfig.Current.SlavePort + " is master via a"); Assert.False(a.GetServer(TestConfig.Current.SlaveServerAndPort).IsSlave, $"{TestConfig.Current.SlaveServerAndPort} should be a master via a");
Assert.True(b.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).IsSlave, TestConfig.Current.MasterPort + " is slave via b"); Assert.True(b.GetServer(TestConfig.Current.MasterServerAndPort).IsSlave, $"{TestConfig.Current.MasterServerAndPort} should be a slave via b");
Assert.False(b.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.SlavePort).IsSlave, TestConfig.Current.SlavePort + " is master via b"); Assert.False(b.GetServer(TestConfig.Current.SlaveServerAndPort).IsSlave, $"{TestConfig.Current.SlaveServerAndPort} should be a master via b");
Output.WriteLine("Pause complete"); Output.WriteLine("Pause complete");
var counters = a.GetCounters(); var counters = a.GetCounters();
...@@ -88,6 +89,7 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager) ...@@ -88,6 +89,7 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager)
Output.WriteLine("b outstanding: " + counters.TotalOutstanding); Output.WriteLine("b outstanding: " + counters.TotalOutstanding);
subA.Ping(); subA.Ping();
subB.Ping(); subB.Ping();
await Task.Delay(2000).ForAwait();
epA = subA.SubscribedEndpoint(channel); epA = subA.SubscribedEndpoint(channel);
epB = subB.SubscribedEndpoint(channel); epB = subB.SubscribedEndpoint(channel);
Output.WriteLine("a: " + EndPointCollection.ToString(epA)); Output.WriteLine("a: " + EndPointCollection.ToString(epA));
...@@ -108,7 +110,7 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager) ...@@ -108,7 +110,7 @@ public void SubscriptionsSurviveMasterSwitch(bool useSharedSocketManager)
Output.WriteLine("Restoring configuration..."); Output.WriteLine("Restoring configuration...");
try try
{ {
a.GetServer(TestConfig.Current.MasterServer, TestConfig.Current.MasterPort).MakeMaster(ReplicationChangeOptions.All); a.GetServer(TestConfig.Current.MasterServerAndPort).MakeMaster(ReplicationChangeOptions.All);
} }
catch catch
{ } { }
......
This diff is collapsed.
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
namespace StackExchange.Redis.Tests namespace StackExchange.Redis.Tests
{ {
[Collection(NonParallelCollection.Name)] [Collection(NonParallelCollection.Name)]
public class Secure : TestBase public class Secure : TestBase
{ {
protected override string GetConfiguration() => protected override string GetConfiguration() =>
TestConfig.Current.MasterServer + ":" + TestConfig.Current.SecurePort + ",password=" + TestConfig.Current.SecurePassword + ",name=MyClient"; TestConfig.Current.SecureServerAndPort + ",password=" + TestConfig.Current.SecurePassword + ",name=MyClient";
public Secure(ITestOutputHelper output) : base (output) { } public Secure(ITestOutputHelper output) : base (output) { }
[Theory] [Theory]
[InlineData(true)] [InlineData(true)]
[InlineData(false)] [InlineData(false)]
public void MassiveBulkOpsFireAndForgetSecure(bool preserveOrder) public void MassiveBulkOpsFireAndForgetSecure(bool preserveOrder)
{ {
using (var muxer = Create()) using (var muxer = Create())
{ {
muxer.PreserveAsyncOrder = preserveOrder; muxer.PreserveAsyncOrder = preserveOrder;
#if DEBUG #if DEBUG
long oldAlloc = ConnectionMultiplexer.GetResultBoxAllocationCount(); long oldAlloc = ConnectionMultiplexer.GetResultBoxAllocationCount();
#endif #endif
RedisKey key = "MBOF"; RedisKey key = "MBOF";
var conn = muxer.GetDatabase(); var conn = muxer.GetDatabase();
conn.Ping(); conn.Ping();
var watch = Stopwatch.StartNew(); var watch = Stopwatch.StartNew();
for (int i = 0; i <= AsyncOpsQty; i++) for (int i = 0; i <= AsyncOpsQty; i++)
{ {
conn.StringSet(key, i, flags: CommandFlags.FireAndForget); conn.StringSet(key, i, flags: CommandFlags.FireAndForget);
} }
int val = (int)conn.StringGet(key); int val = (int)conn.StringGet(key);
Assert.Equal(AsyncOpsQty, val); Assert.Equal(AsyncOpsQty, val);
watch.Stop(); watch.Stop();
Output.WriteLine("{2}: Time for {0} ops: {1}ms ({3}); ops/s: {4}", AsyncOpsQty, watch.ElapsedMilliseconds, Me(), Output.WriteLine("{2}: Time for {0} ops: {1}ms ({3}); ops/s: {4}", AsyncOpsQty, watch.ElapsedMilliseconds, Me(),
preserveOrder ? "preserve order" : "any order", preserveOrder ? "preserve order" : "any order",
AsyncOpsQty / watch.Elapsed.TotalSeconds); AsyncOpsQty / watch.Elapsed.TotalSeconds);
#if DEBUG #if DEBUG
long newAlloc = ConnectionMultiplexer.GetResultBoxAllocationCount(); long newAlloc = ConnectionMultiplexer.GetResultBoxAllocationCount();
Output.WriteLine("ResultBox allocations: {0}", newAlloc - oldAlloc); Output.WriteLine("ResultBox allocations: {0}", newAlloc - oldAlloc);
Assert.True(newAlloc - oldAlloc <= 2, $"NewAllocs: {newAlloc}, OldAllocs: {oldAlloc}"); Assert.True(newAlloc - oldAlloc <= 2, $"NewAllocs: {newAlloc}, OldAllocs: {oldAlloc}");
#endif #endif
} }
} }
[Fact] [Fact]
public void CheckConfig() public void CheckConfig()
{ {
var config = ConfigurationOptions.Parse(GetConfiguration()); var config = ConfigurationOptions.Parse(GetConfiguration());
foreach (var ep in config.EndPoints) foreach (var ep in config.EndPoints)
{ {
Output.WriteLine(ep.ToString()); Output.WriteLine(ep.ToString());
} }
Assert.Single(config.EndPoints); Assert.Single(config.EndPoints);
Assert.Equal("changeme", config.Password); Assert.Equal("changeme", config.Password);
} }
[Fact] [Fact]
public void Connect() public void Connect()
{ {
using (var server = Create()) using (var server = Create())
{ {
server.GetDatabase().Ping(); server.GetDatabase().Ping();
} }
} }
[Theory] [Theory]
[InlineData("wrong")] [InlineData("wrong")]
[InlineData("")] [InlineData("")]
public async Task ConnectWithWrongPassword(string password) public async Task ConnectWithWrongPassword(string password)
{ {
var config = ConfigurationOptions.Parse(GetConfiguration()); var config = ConfigurationOptions.Parse(GetConfiguration());
config.Password = password; config.Password = password;
config.ConnectRetry = 0; // we don't want to retry on closed sockets in this case. config.ConnectRetry = 0; // we don't want to retry on closed sockets in this case.
var ex = await Assert.ThrowsAsync<RedisConnectionException>(async () => var ex = await Assert.ThrowsAsync<RedisConnectionException>(async () =>
{ {
SetExpectedAmbientFailureCount(-1); SetExpectedAmbientFailureCount(-1);
using (var conn = await ConnectionMultiplexer.ConnectAsync(config, Writer).ConfigureAwait(false)) using (var conn = await ConnectionMultiplexer.ConnectAsync(config, Writer).ConfigureAwait(false))
{ {
conn.GetDatabase().Ping(); conn.GetDatabase().Ping();
} }
}).ConfigureAwait(false); }).ConfigureAwait(false);
Output.WriteLine("Exception: " + ex.Message); Output.WriteLine("Exception: " + ex.Message);
Assert.Equal("It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. AuthenticationFailure on PING", ex.Message); Assert.Equal("It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. AuthenticationFailure on PING", ex.Message);
} }
} }
} }
...@@ -18,7 +18,7 @@ public abstract class TestBase : IDisposable ...@@ -18,7 +18,7 @@ public abstract class TestBase : IDisposable
{ {
protected ITestOutputHelper Output { get; } protected ITestOutputHelper Output { get; }
protected TextWriterOutputHelper Writer { get; } protected TextWriterOutputHelper Writer { get; }
protected virtual string GetConfiguration() => TestConfig.Current.MasterServer + ":" + TestConfig.Current.MasterPort + "," + TestConfig.Current.SlaveServer + ":" + TestConfig.Current.SlavePort; protected virtual string GetConfiguration() => TestConfig.Current.MasterServerAndPort + "," + TestConfig.Current.SlaveServerAndPort;
protected TestBase(ITestOutputHelper output) protected TestBase(ITestOutputHelper output)
{ {
...@@ -331,4 +331,4 @@ protected static TimeSpan RunConcurrent(Action work, int threads, int timeout = ...@@ -331,4 +331,4 @@ protected static TimeSpan RunConcurrent(Action work, int threads, int timeout =
return watch.Elapsed; return watch.Elapsed;
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment