Commit c9ae36ce authored by Nick Craver's avatar Nick Craver

Tests: remove database IDs from most

We've de-duped keys most places, and others are just calling with 0. Still some left, but this takes care of most
parent 01e6a1ce
...@@ -15,7 +15,7 @@ public void TestBatchNotSent() ...@@ -15,7 +15,7 @@ public void TestBatchNotSent()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
conn.KeyDeleteAsync("batch"); conn.KeyDeleteAsync("batch");
conn.StringSetAsync("batch", "batch-not-sent"); conn.StringSetAsync("batch", "batch-not-sent");
var tasks = new List<Task>(); var tasks = new List<Task>();
...@@ -35,7 +35,7 @@ public void TestBatchSent() ...@@ -35,7 +35,7 @@ public void TestBatchSent()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
conn.KeyDeleteAsync("batch"); conn.KeyDeleteAsync("batch");
conn.StringSetAsync("batch", "batch-sent"); conn.StringSetAsync("batch", "batch-sent");
var tasks = new List<Task>(); var tasks = new List<Task>();
......
...@@ -23,7 +23,7 @@ public void TestManualIncr() ...@@ -23,7 +23,7 @@ public void TestManualIncr()
using (var muxer = GetUnsecuredConnection(syncTimeout: 120000)) // big timeout while debugging using (var muxer = GetUnsecuredConnection(syncTimeout: 120000)) // big timeout while debugging
{ {
var key = Me(); var key = Me();
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
for (int i = 0; i < 200; i++) for (int i = 0; i < 200; i++)
{ {
conn.KeyDelete(key); conn.KeyDelete(key);
......
...@@ -18,7 +18,7 @@ public async Task TestIncrBy() ...@@ -18,7 +18,7 @@ public async Task TestIncrBy()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(5); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
await conn.KeyDeleteAsync(key).ForAwait(); await conn.KeyDeleteAsync(key).ForAwait();
for (int i = 1; i < 1000; i++) for (int i = 1; i < 1000; i++)
...@@ -37,9 +37,7 @@ public void Scan() ...@@ -37,9 +37,7 @@ public void Scan()
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.Scan), r => r.Scan); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.Scan), r => r.Scan);
var conn = muxer.GetDatabase();
const int db = 3;
var conn = muxer.GetDatabase(db);
var key = Me(); var key = Me();
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
...@@ -78,7 +76,7 @@ public void TestIncrementOnHashThatDoesntExist() ...@@ -78,7 +76,7 @@ public void TestIncrementOnHashThatDoesntExist()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
conn.KeyDeleteAsync("keynotexist"); conn.KeyDeleteAsync("keynotexist");
var result1 = conn.Wait(conn.HashIncrementAsync("keynotexist", "fieldnotexist", 1)); var result1 = conn.Wait(conn.HashIncrementAsync("keynotexist", "fieldnotexist", 1));
var result2 = conn.Wait(conn.HashIncrementAsync("keynotexist", "anotherfieldnotexist", 1)); var result2 = conn.Wait(conn.HashIncrementAsync("keynotexist", "anotherfieldnotexist", 1));
...@@ -93,12 +91,13 @@ public async Task TestIncrByFloat() ...@@ -93,12 +91,13 @@ public async Task TestIncrByFloat()
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.IncrementFloat), r => r.IncrementFloat); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.IncrementFloat), r => r.IncrementFloat);
var conn = muxer.GetDatabase(5); var conn = muxer.GetDatabase();
await conn.KeyDeleteAsync("hash-test").ForAwait(); var key = Me();
await conn.KeyDeleteAsync(key).ForAwait();
for (int i = 1; i < 1000; i++) for (int i = 1; i < 1000; i++)
{ {
Assert.Equal(i, await conn.HashIncrementAsync("hash-test", "a", 1.0).ForAwait()); Assert.Equal(i, await conn.HashIncrementAsync(key, "a", 1.0).ForAwait());
Assert.Equal(-i, await conn.HashIncrementAsync("hash-test", "b", -1.0).ForAwait()); Assert.Equal(-i, await conn.HashIncrementAsync(key, "b", -1.0).ForAwait());
} }
} }
} }
...@@ -108,8 +107,8 @@ public async Task TestGetAll() ...@@ -108,8 +107,8 @@ public async Task TestGetAll()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(6); var conn = muxer.GetDatabase();
const string key = "hash test"; var key = Me();
await conn.KeyDeleteAsync(key).ForAwait(); await conn.KeyDeleteAsync(key).ForAwait();
var shouldMatch = new Dictionary<Guid, int>(); var shouldMatch = new Dictionary<Guid, int>();
var random = new Random(); var random = new Random();
...@@ -140,8 +139,8 @@ public async Task TestGet() ...@@ -140,8 +139,8 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
const string key = "hash test"; var key = Me();
var conn = muxer.GetDatabase(6); var conn = muxer.GetDatabase();
var shouldMatch = new Dictionary<Guid, int>(); var shouldMatch = new Dictionary<Guid, int>();
var random = new Random(); var random = new Random();
...@@ -170,7 +169,7 @@ public async Task TestGet() ...@@ -170,7 +169,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -209,7 +208,7 @@ public async Task TestGet() ...@@ -209,7 +208,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -240,7 +239,7 @@ public async Task TestGet() ...@@ -240,7 +239,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
var del0 = conn.HashDeleteAsync(hashkey, "field").ForAwait(); var del0 = conn.HashDeleteAsync(hashkey, "field").ForAwait();
...@@ -261,7 +260,7 @@ public async Task TestGet() ...@@ -261,7 +260,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(3); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
conn.HashSetAsync(hashkey, "key1", "val1"); conn.HashSetAsync(hashkey, "key1", "val1");
conn.HashSetAsync(hashkey, "key2", "val2"); conn.HashSetAsync(hashkey, "key2", "val2");
...@@ -299,7 +298,7 @@ public async Task TestGet() ...@@ -299,7 +298,7 @@ public async Task TestGet()
{ {
using (var outer = GetUnsecuredConnection()) using (var outer = GetUnsecuredConnection())
{ {
var conn = outer.GetDatabase(3).CreateTransaction(); var conn = outer.GetDatabase().CreateTransaction();
{ {
var hashkey = Me(); var hashkey = Me();
conn.HashSetAsync(hashkey, "key1", "val1"); conn.HashSetAsync(hashkey, "key1", "val1");
...@@ -336,7 +335,7 @@ public async Task TestGet() ...@@ -336,7 +335,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
var ex0 = conn.HashExistsAsync(hashkey, "field").ForAwait(); var ex0 = conn.HashExistsAsync(hashkey, "field").ForAwait();
...@@ -356,7 +355,7 @@ public async Task TestGet() ...@@ -356,7 +355,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashKey = Me(); var hashKey = Me();
await conn.KeyDeleteAsync(hashKey).ForAwait(); await conn.KeyDeleteAsync(hashKey).ForAwait();
...@@ -381,7 +380,7 @@ public async Task TestGet() ...@@ -381,7 +380,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -406,7 +405,7 @@ public async Task TestGet() ...@@ -406,7 +405,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -427,7 +426,7 @@ public async Task TestGet() ...@@ -427,7 +426,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -462,7 +461,7 @@ public async Task TestGet() ...@@ -462,7 +461,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
...@@ -486,7 +485,7 @@ public async Task TestGet() ...@@ -486,7 +485,7 @@ public async Task TestGet()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(9); var conn = muxer.GetDatabase();
var hashkey = Me(); var hashkey = Me();
await conn.KeyDeleteAsync(hashkey).ForAwait(); await conn.KeyDeleteAsync(hashkey).ForAwait();
......
...@@ -12,16 +12,15 @@ public void Execute() ...@@ -12,16 +12,15 @@ public void Execute()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
const int DB = 5; var key = Me();
const string Key = "issue-10-list"; var conn = muxer.GetDatabase();
var conn = muxer.GetDatabase(DB); conn.KeyDeleteAsync(key); // contents: nil
conn.KeyDeleteAsync(Key); // contents: nil conn.ListLeftPushAsync(key, "abc"); // "abc"
conn.ListLeftPushAsync(Key, "abc"); // "abc" conn.ListLeftPushAsync(key, "def"); // "def", "abc"
conn.ListLeftPushAsync(Key, "def"); // "def", "abc" conn.ListLeftPushAsync(key, "ghi"); // "ghi", "def", "abc",
conn.ListLeftPushAsync(Key, "ghi"); // "ghi", "def", "abc", conn.ListSetByIndexAsync(key, 1, "jkl"); // "ghi", "jkl", "abc"
conn.ListSetByIndexAsync(Key, 1, "jkl"); // "ghi", "jkl", "abc"
var contents = conn.Wait(conn.ListRangeAsync(Key, 0, -1)); var contents = conn.Wait(conn.ListRangeAsync(key, 0, -1));
Assert.Equal(3, contents.Length); Assert.Equal(3, contents.Length);
Assert.Equal("ghi", contents[0]); Assert.Equal("ghi", contents[0]);
Assert.Equal("jkl", contents[1]); Assert.Equal("jkl", contents[1]);
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
using System.Diagnostics; using System.Diagnostics;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
namespace StackExchange.Redis.Tests.Booksleeve.Issues namespace StackExchange.Redis.Tests.Booksleeve.Issues
...@@ -32,14 +31,14 @@ private void Prep(int db, string key) ...@@ -32,14 +31,14 @@ private void Prep(int db, string key)
[FactLongRunning] [FactLongRunning]
public async Task ExecuteMassiveDelete() public async Task ExecuteMassiveDelete()
{ {
const int db = 4; var dbId = TestConfig.GetDedicatedDB();
var key = Me(); var key = Me();
Prep(db, key); Prep(dbId, key);
var watch = Stopwatch.StartNew(); var watch = Stopwatch.StartNew();
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
using (var throttle = new SemaphoreSlim(1)) using (var throttle = new SemaphoreSlim(1))
{ {
var conn = muxer.GetDatabase(db); var conn = muxer.GetDatabase(dbId);
var originally = await conn.SetLengthAsync(key).ForAwait(); var originally = await conn.SetLengthAsync(key).ForAwait();
int keepChecking = 1; int keepChecking = 1;
Task last = null; Task last = null;
......
...@@ -15,7 +15,7 @@ public void LoopLotsOfTrivialStuff() ...@@ -15,7 +15,7 @@ public void LoopLotsOfTrivialStuff()
Trace.WriteLine("### init"); Trace.WriteLine("### init");
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
conn.KeyDelete("lots-trivial"); conn.KeyDelete("lots-trivial");
} }
const int COUNT = 2; const int COUNT = 2;
...@@ -24,14 +24,14 @@ public void LoopLotsOfTrivialStuff() ...@@ -24,14 +24,14 @@ public void LoopLotsOfTrivialStuff()
Trace.WriteLine("### incr:" + i); Trace.WriteLine("### incr:" + i);
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
Assert.Equal(i + 1, conn.StringIncrement("lots-trivial")); Assert.Equal(i + 1, conn.StringIncrement("lots-trivial"));
} }
} }
Trace.WriteLine("### close"); Trace.WriteLine("### close");
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
Assert.Equal(COUNT, (long)conn.StringGet("lots-trivial")); Assert.Equal(COUNT, (long)conn.StringGet("lots-trivial"));
} }
} }
...@@ -41,7 +41,7 @@ public void ExecuteWithEmptyStartingPoint() ...@@ -41,7 +41,7 @@ public void ExecuteWithEmptyStartingPoint()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var task = new { priority = 3 }; var task = new { priority = 3 };
conn.KeyDeleteAsync("item:1"); conn.KeyDeleteAsync("item:1");
conn.HashSetAsync("item:1", "something else", "abc"); conn.HashSetAsync("item:1", "something else", "abc");
...@@ -51,7 +51,7 @@ public void ExecuteWithEmptyStartingPoint() ...@@ -51,7 +51,7 @@ public void ExecuteWithEmptyStartingPoint()
conn.Wait(taskResult); conn.Wait(taskResult);
var priority = Int32.Parse(taskResult.Result); var priority = int.Parse(taskResult.Result);
Assert.Equal(3, priority); Assert.Equal(3, priority);
} }
...@@ -64,7 +64,7 @@ public void ExecuteWithNonHashStartingPoint() ...@@ -64,7 +64,7 @@ public void ExecuteWithNonHashStartingPoint()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var task = new { priority = 3 }; var task = new { priority = 3 };
conn.KeyDeleteAsync("item:1"); conn.KeyDeleteAsync("item:1");
conn.StringSetAsync("item:1", "not a hash"); conn.StringSetAsync("item:1", "not a hash");
......
...@@ -14,9 +14,9 @@ public void Execute() ...@@ -14,9 +14,9 @@ public void Execute()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
const string key = "somekey1"; var key = Me();
var con = muxer.GetDatabase(1); var con = muxer.GetDatabase();
// set the field value and expiration // set the field value and expiration
con.HashSetAsync(key, "field1", Encoding.UTF8.GetBytes("hello world")); con.HashSetAsync(key, "field1", Encoding.UTF8.GetBytes("hello world"));
con.KeyExpireAsync(key, TimeSpan.FromSeconds(7200)); con.KeyExpireAsync(key, TimeSpan.FromSeconds(7200));
......
...@@ -10,10 +10,9 @@ public class SO11766033 : BookSleeveTestBase ...@@ -10,10 +10,9 @@ public class SO11766033 : BookSleeveTestBase
[Fact] [Fact]
public void TestNullString() public void TestNullString()
{ {
const int db = 3;
using (var muxer = GetUnsecuredConnection(true)) using (var muxer = GetUnsecuredConnection(true))
{ {
var redis = muxer.GetDatabase(db); var redis = muxer.GetDatabase();
const string expectedTestValue = null; const string expectedTestValue = null;
var uid = Me(); var uid = Me();
redis.StringSetAsync(uid, "abc"); redis.StringSetAsync(uid, "abc");
...@@ -26,10 +25,9 @@ public void TestNullString() ...@@ -26,10 +25,9 @@ public void TestNullString()
[Fact] [Fact]
public void TestEmptyString() public void TestEmptyString()
{ {
const int db = 3;
using (var muxer = GetUnsecuredConnection(true)) using (var muxer = GetUnsecuredConnection(true))
{ {
var redis = muxer.GetDatabase(db); var redis = muxer.GetDatabase();
const string expectedTestValue = ""; const string expectedTestValue = "";
var uid = Me(); var uid = Me();
......
...@@ -14,12 +14,13 @@ public class Performance : BookSleeveTestBase ...@@ -14,12 +14,13 @@ public class Performance : BookSleeveTestBase
public void VerifyPerformanceImprovement() public void VerifyPerformanceImprovement()
{ {
int asyncTimer, sync, op = 0, asyncFaF, syncFaF; int asyncTimer, sync, op = 0, asyncFaF, syncFaF;
var key = Me();
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
// do these outside the timings, just to ensure the core methods are JITted etc // do these outside the timings, just to ensure the core methods are JITted etc
for (int db = 0; db < 5; db++) for (int db = 0; db < 5; db++)
{ {
muxer.GetDatabase(db).KeyDeleteAsync("perftest"); muxer.GetDatabase(db).KeyDeleteAsync(key);
} }
var timer = Stopwatch.StartNew(); var timer = Stopwatch.StartNew();
...@@ -31,13 +32,13 @@ public void VerifyPerformanceImprovement() ...@@ -31,13 +32,13 @@ public void VerifyPerformanceImprovement()
{ {
var conn = muxer.GetDatabase(db); var conn = muxer.GetDatabase(db);
for (int j = 0; j < 10; j++) for (int j = 0; j < 10; j++)
conn.StringIncrementAsync("perftest"); conn.StringIncrementAsync(key);
} }
} }
asyncFaF = (int)timer.ElapsedMilliseconds; asyncFaF = (int)timer.ElapsedMilliseconds;
var final = new Task<RedisValue>[5]; var final = new Task<RedisValue>[5];
for (int db = 0; db < 5; db++) for (int db = 0; db < 5; db++)
final[db] = muxer.GetDatabase(db).StringGetAsync("perftest"); final[db] = muxer.GetDatabase(db).StringGetAsync(key);
muxer.WaitAll(final); muxer.WaitAll(final);
timer.Stop(); timer.Stop();
asyncTimer = (int)timer.ElapsedMilliseconds; asyncTimer = (int)timer.ElapsedMilliseconds;
...@@ -54,7 +55,7 @@ public void VerifyPerformanceImprovement() ...@@ -54,7 +55,7 @@ public void VerifyPerformanceImprovement()
for (int db = 0; db < 5; db++) for (int db = 0; db < 5; db++)
{ {
conn.Db = db; conn.Db = db;
conn.Remove("perftest"); conn.Remove(key);
} }
var timer = Stopwatch.StartNew(); var timer = Stopwatch.StartNew();
...@@ -68,7 +69,7 @@ public void VerifyPerformanceImprovement() ...@@ -68,7 +69,7 @@ public void VerifyPerformanceImprovement()
op++; op++;
for (int j = 0; j < 10; j++) for (int j = 0; j < 10; j++)
{ {
conn.Increment("perftest"); conn.Increment(key);
op++; op++;
} }
} }
...@@ -78,7 +79,7 @@ public void VerifyPerformanceImprovement() ...@@ -78,7 +79,7 @@ public void VerifyPerformanceImprovement()
for (int db = 0; db < 5; db++) for (int db = 0; db < 5; db++)
{ {
conn.Db = db; conn.Db = db;
final[db] = Encoding.ASCII.GetString(conn.Get("perftest")); final[db] = Encoding.ASCII.GetString(conn.Get(key));
} }
timer.Stop(); timer.Stop();
sync = (int)timer.ElapsedMilliseconds; sync = (int)timer.ElapsedMilliseconds;
......
...@@ -126,8 +126,7 @@ public void MultiIncrWithoutReplies() ...@@ -126,8 +126,7 @@ public void MultiIncrWithoutReplies()
{ {
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
const int DB = 0; // any database number var conn = muxer.GetDatabase();
var conn = muxer.GetDatabase(DB);
var prefix = Me(); var prefix = Me();
// prime some initial values // prime some initial values
conn.KeyDeleteAsync(new RedisKey[] { prefix + "a", prefix + "b", prefix + "c" }); conn.KeyDeleteAsync(new RedisKey[] { prefix + "a", prefix + "b", prefix + "c" });
...@@ -159,8 +158,7 @@ public void MultiIncrByWithoutReplies() ...@@ -159,8 +158,7 @@ public void MultiIncrByWithoutReplies()
{ {
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
const int DB = 0; // any database number var conn = muxer.GetDatabase();
var conn = muxer.GetDatabase(DB);
var prefix = Me(); var prefix = Me();
// prime some initial values // prime some initial values
conn.KeyDeleteAsync(new RedisKey[] { prefix + "a", prefix + "b", prefix + "c" }); conn.KeyDeleteAsync(new RedisKey[] { prefix + "a", prefix + "b", prefix + "c" });
...@@ -192,7 +190,7 @@ public void DisableStringInference() ...@@ -192,7 +190,7 @@ public void DisableStringInference()
{ {
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.StringSet(key, "bar"); conn.StringSet(key, "bar");
var result = (byte[])conn.ScriptEvaluate("return redis.call('get', KEYS[1])", new RedisKey[] { key }); var result = (byte[])conn.ScriptEvaluate("return redis.call('get', KEYS[1])", new RedisKey[] { key });
...@@ -205,7 +203,7 @@ public void FlushDetection() ...@@ -205,7 +203,7 @@ public void FlushDetection()
{ // we don't expect this to handle everything; we just expect it to be predictable { // we don't expect this to handle everything; we just expect it to be predictable
using (var muxer = GetScriptConn(allowAdmin: true)) using (var muxer = GetScriptConn(allowAdmin: true))
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.StringSet(key, "bar"); conn.StringSet(key, "bar");
var result = (string)conn.ScriptEvaluate("return redis.call('get', KEYS[1])", new RedisKey[] { key }, null); var result = (string)conn.ScriptEvaluate("return redis.call('get', KEYS[1])", new RedisKey[] { key }, null);
...@@ -263,7 +261,7 @@ public void NonAsciiScripts() ...@@ -263,7 +261,7 @@ public void NonAsciiScripts()
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
const string evil = "return '僕'"; const string evil = "return '僕'";
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
GetServer(muxer).ScriptLoad(evil); GetServer(muxer).ScriptLoad(evil);
var result = (string)conn.ScriptEvaluate(evil, null, null); var result = (string)conn.ScriptEvaluate(evil, null, null);
...@@ -278,7 +276,7 @@ public void ScriptThrowsError() ...@@ -278,7 +276,7 @@ public void ScriptThrowsError()
{ {
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var result = conn.ScriptEvaluateAsync("return redis.error_reply('oops')", null, null); var result = conn.ScriptEvaluateAsync("return redis.error_reply('oops')", null, null);
try try
{ {
...@@ -297,9 +295,8 @@ public void ScriptThrowsErrorInsideTransaction() ...@@ -297,9 +295,8 @@ public void ScriptThrowsErrorInsideTransaction()
{ {
using (var muxer = GetScriptConn()) using (var muxer = GetScriptConn())
{ {
const int db = 0; var key = Me();
const string key = "ScriptThrowsErrorInsideTransaction"; var conn = muxer.GetDatabase();
var conn = muxer.GetDatabase(db);
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
var beforeTran = (string)conn.StringGet(key); var beforeTran = (string)conn.StringGet(key);
Assert.Null(beforeTran); Assert.Null(beforeTran);
......
...@@ -14,7 +14,7 @@ public void Append() ...@@ -14,7 +14,7 @@ public void Append()
{ {
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var server = GetServer(muxer); var server = GetServer(muxer);
var key = Me(); var key = Me();
conn.KeyDelete(key); conn.KeyDelete(key);
...@@ -49,7 +49,7 @@ public void Set() ...@@ -49,7 +49,7 @@ public void Set()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
...@@ -69,7 +69,7 @@ public void SetNotExists() ...@@ -69,7 +69,7 @@ public void SetNotExists()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var prefix = Me(); var prefix = Me();
conn.KeyDeleteAsync(prefix + "1"); conn.KeyDeleteAsync(prefix + "1");
conn.KeyDeleteAsync(prefix + "2"); conn.KeyDeleteAsync(prefix + "2");
...@@ -101,7 +101,7 @@ public void Ranges() ...@@ -101,7 +101,7 @@ public void Ranges()
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.StringSetRange), r => r.StringSetRange); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.StringSetRange), r => r.StringSetRange);
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
...@@ -121,7 +121,7 @@ public void IncrDecr() ...@@ -121,7 +121,7 @@ public void IncrDecr()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
...@@ -150,7 +150,7 @@ public void IncrDecrFloat() ...@@ -150,7 +150,7 @@ public void IncrDecrFloat()
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.IncrementFloat), r => r.IncrementFloat); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.IncrementFloat), r => r.IncrementFloat);
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.KeyDelete(key); conn.KeyDelete(key);
...@@ -179,7 +179,7 @@ public void GetRange() ...@@ -179,7 +179,7 @@ public void GetRange()
{ {
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
var conn = muxer.GetDatabase(2); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.KeyDeleteAsync(key); conn.KeyDeleteAsync(key);
...@@ -199,7 +199,7 @@ public void BitCount() ...@@ -199,7 +199,7 @@ public void BitCount()
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.BitwiseOperations), r => r.BitwiseOperations); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.BitwiseOperations), r => r.BitwiseOperations);
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.StringSetAsync(key, "foobar"); conn.StringSetAsync(key, "foobar");
var r1 = conn.StringBitCountAsync(key); var r1 = conn.StringBitCountAsync(key);
...@@ -218,7 +218,7 @@ public void BitOp() ...@@ -218,7 +218,7 @@ public void BitOp()
using (var muxer = GetUnsecuredConnection(waitForOpen: true)) using (var muxer = GetUnsecuredConnection(waitForOpen: true))
{ {
Skip.IfMissingFeature(muxer, nameof(RedisFeatures.BitwiseOperations), r => r.BitwiseOperations); Skip.IfMissingFeature(muxer, nameof(RedisFeatures.BitwiseOperations), r => r.BitwiseOperations);
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var prefix = Me(); var prefix = Me();
var key1 = prefix + "1"; var key1 = prefix + "1";
var key2 = prefix + "2"; var key2 = prefix + "2";
...@@ -254,7 +254,7 @@ public void RangeString() ...@@ -254,7 +254,7 @@ public void RangeString()
{ {
using (var muxer = GetUnsecuredConnection()) using (var muxer = GetUnsecuredConnection())
{ {
var conn = muxer.GetDatabase(0); var conn = muxer.GetDatabase();
var key = Me(); var key = Me();
conn.StringSetAsync(key, "hello world"); conn.StringSetAsync(key, "hello world");
var result = conn.StringGetRangeAsync(key, 2, 6); var result = conn.StringGetRangeAsync(key, 2, 6);
......
...@@ -11,24 +11,26 @@ public class Databases : TestBase ...@@ -11,24 +11,26 @@ public class Databases : TestBase
[Fact] [Fact]
public async Task CountKeys() public async Task CountKeys()
{ {
var db1Id = TestConfig.GetDedicatedDB();
var db2Id = TestConfig.GetDedicatedDB();
using (var muxer = Create(allowAdmin: true)) using (var muxer = Create(allowAdmin: true))
{ {
var server = GetAnyMaster(muxer); var server = GetAnyMaster(muxer);
server.FlushDatabase(61, CommandFlags.FireAndForget); server.FlushDatabase(db1Id, CommandFlags.FireAndForget);
server.FlushDatabase(62, CommandFlags.FireAndForget); server.FlushDatabase(db2Id, CommandFlags.FireAndForget);
} }
using (var muxer = Create()) using (var muxer = Create())
{ {
RedisKey key = Me(); RedisKey key = Me();
var db61 = muxer.GetDatabase(61); var db61 = muxer.GetDatabase(db1Id);
var db62 = muxer.GetDatabase(62); var db62 = muxer.GetDatabase(db2Id);
db61.StringSet("abc", "def", flags: CommandFlags.FireAndForget); db61.StringSet("abc", "def", flags: CommandFlags.FireAndForget);
db61.StringIncrement(key, flags: CommandFlags.FireAndForget); db61.StringIncrement(key, flags: CommandFlags.FireAndForget);
db62.StringIncrement(key, flags: CommandFlags.FireAndForget); db62.StringIncrement(key, flags: CommandFlags.FireAndForget);
var server = GetAnyMaster(muxer); var server = GetAnyMaster(muxer);
var c0 = server.DatabaseSizeAsync(61); var c0 = server.DatabaseSizeAsync(db1Id);
var c1 = server.DatabaseSizeAsync(62); var c1 = server.DatabaseSizeAsync(db2Id);
Assert.Equal(2, await c0); Assert.Equal(2, await c0);
Assert.Equal(1, await c1); Assert.Equal(1, await c1);
...@@ -41,9 +43,9 @@ public void MultiDatabases() ...@@ -41,9 +43,9 @@ public void MultiDatabases()
using (var muxer = Create()) using (var muxer = Create())
{ {
RedisKey key = Me(); RedisKey key = Me();
var db0 = muxer.GetDatabase(0); var db0 = muxer.GetDatabase(TestConfig.GetDedicatedDB());
var db1 = muxer.GetDatabase(1); var db1 = muxer.GetDatabase(TestConfig.GetDedicatedDB());
var db2 = muxer.GetDatabase(2); var db2 = muxer.GetDatabase(TestConfig.GetDedicatedDB());
db0.Ping(); db0.Ping();
db0.KeyDelete(key, CommandFlags.FireAndForget); db0.KeyDelete(key, CommandFlags.FireAndForget);
......
using System.IO; using System.IO;
using System; using System;
using System.Collections.Generic;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Threading;
namespace StackExchange.Redis.Tests namespace StackExchange.Redis.Tests
{ {
...@@ -11,6 +11,9 @@ public static class TestConfig ...@@ -11,6 +11,9 @@ public static class TestConfig
public static Config Current { get; } public static Config Current { get; }
private static int _db = 17;
public static int GetDedicatedDB() => Interlocked.Increment(ref _db);
static TestConfig() static TestConfig()
{ {
Current = new Config(); Current = new Config();
......
...@@ -12,7 +12,7 @@ public void Execute() ...@@ -12,7 +12,7 @@ public void Execute()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
RedisKey key = Me(); RedisKey key = Me();
db.KeyDelete(key, CommandFlags.FireAndForget); db.KeyDelete(key, CommandFlags.FireAndForget);
db.SortedSetAdd(key, "c", 3, When.Always, CommandFlags.FireAndForget); db.SortedSetAdd(key, "c", 3, When.Always, CommandFlags.FireAndForget);
......
...@@ -17,7 +17,7 @@ public async Task SetExpirationToPassed() ...@@ -17,7 +17,7 @@ public async Task SetExpirationToPassed()
using (var conn = Create()) using (var conn = Create())
{ {
// Given // Given
var cache = conn.GetDatabase(59); var cache = conn.GetDatabase();
cache.KeyDelete(key); cache.KeyDelete(key);
cache.HashSet(key, "full", "test", When.NotExists, CommandFlags.PreferMaster); cache.HashSet(key, "full", "test", When.NotExists, CommandFlags.PreferMaster);
......
...@@ -14,16 +14,17 @@ public void TestScan() ...@@ -14,16 +14,17 @@ public void TestScan()
{ {
using (var muxer = Create(allowAdmin: true)) using (var muxer = Create(allowAdmin: true))
{ {
const int Database = 43; var dbId = TestConfig.GetDedicatedDB();
var db = muxer.GetDatabase(Database); var db = muxer.GetDatabase(dbId);
var server = GetAnyMaster(muxer); var server = GetAnyMaster(muxer);
var prefix = Me();
server.FlushDatabase(flags: CommandFlags.FireAndForget); server.FlushDatabase(flags: CommandFlags.FireAndForget);
const int Count = 1000; const int Count = 1000;
for (int i = 0; i < Count; i++) for (int i = 0; i < Count; i++)
db.StringSet("x" + i, "y" + i, flags: CommandFlags.FireAndForget); db.StringSet(prefix + "x" + i, "y" + i, flags: CommandFlags.FireAndForget);
var count = server.Keys(Database).Count(); var count = server.Keys(dbId).Count();
Assert.Equal(Count, count); Assert.Equal(Count, count);
} }
} }
...@@ -33,16 +34,17 @@ public void FlushFetchRandomKey() ...@@ -33,16 +34,17 @@ public void FlushFetchRandomKey()
{ {
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
const int dbId = 63; var dbId = TestConfig.GetDedicatedDB();
var db = conn.GetDatabase(dbId); var db = conn.GetDatabase(dbId);
var prefix = Me();
conn.GetServer(TestConfig.Current.MasterServerAndPort).FlushDatabase(dbId); conn.GetServer(TestConfig.Current.MasterServerAndPort).FlushDatabase(dbId);
string anyKey = db.KeyRandom(); string anyKey = db.KeyRandom();
Assert.Null(anyKey); Assert.Null(anyKey);
db.StringSet("abc", "def"); db.StringSet(prefix + "abc", "def");
byte[] keyBytes = db.KeyRandom(); byte[] keyBytes = db.KeyRandom();
Assert.Equal("abc", Encoding.UTF8.GetString(keyBytes)); Assert.Equal(prefix + "abc", Encoding.UTF8.GetString(keyBytes));
} }
} }
...@@ -52,17 +54,18 @@ public void Zeros() ...@@ -52,17 +54,18 @@ public void Zeros()
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(); var db = conn.GetDatabase();
db.KeyDelete("abc"); var key = Me();
db.StringSet("abc", 123); db.KeyDelete(key);
int k = (int)db.StringGet("abc"); db.StringSet(key, 123);
int k = (int)db.StringGet(key);
Assert.Equal(123, k); Assert.Equal(123, k);
db.KeyDelete("abc"); db.KeyDelete(key);
int i = (int)db.StringGet("abc"); int i = (int)db.StringGet(key);
Assert.Equal(0, i); Assert.Equal(0, i);
Assert.True(db.StringGet("abc").IsNull); Assert.True(db.StringGet(key).IsNull);
int? value = (int?)db.StringGet("abc"); int? value = (int?)db.StringGet(key);
Assert.False(value.HasValue); Assert.False(value.HasValue);
} }
} }
......
...@@ -104,10 +104,10 @@ public void TestOpCountByVersionLocal_UpLevel() ...@@ -104,10 +104,10 @@ public void TestOpCountByVersionLocal_UpLevel()
private void TestLockOpCountByVersion(ConnectionMultiplexer conn, int expectedOps, bool existFirst) private void TestLockOpCountByVersion(ConnectionMultiplexer conn, int expectedOps, bool existFirst)
{ {
const int DB = 0, LockDuration = 30; const int LockDuration = 30;
RedisKey Key = Me(); RedisKey Key = Me();
var db = conn.GetDatabase(DB); var db = conn.GetDatabase();
db.KeyDelete(Key); db.KeyDelete(Key);
RedisValue newVal = "us:" + Guid.NewGuid().ToString(); RedisValue newVal = "us:" + Guid.NewGuid().ToString();
RedisValue expectedVal = newVal; RedisValue expectedVal = newVal;
...@@ -237,7 +237,7 @@ public void TestBasicLockNotTaken(TestMode testMode) ...@@ -237,7 +237,7 @@ public void TestBasicLockNotTaken(TestMode testMode)
Task<TimeSpan?> ttl = null; Task<TimeSpan?> ttl = null;
const int LOOP = 50; const int LOOP = 50;
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
var key = Me(); var key = Me();
for (int i = 0; i < LOOP; i++) for (int i = 0; i < LOOP; i++)
{ {
...@@ -260,7 +260,7 @@ public void TestBasicLockTaken(TestMode testMode) ...@@ -260,7 +260,7 @@ public void TestBasicLockTaken(TestMode testMode)
{ {
using (var conn = Create(testMode)) using (var conn = Create(testMode))
{ {
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
var key = Me(); var key = Me();
db.KeyDelete(key); db.KeyDelete(key);
db.StringSet(key, "old-value", TimeSpan.FromSeconds(20)); db.StringSet(key, "old-value", TimeSpan.FromSeconds(20));
......
...@@ -13,7 +13,7 @@ public void AddSortedSetEveryWay() ...@@ -13,7 +13,7 @@ public void AddSortedSetEveryWay()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(3); var db = conn.GetDatabase();
RedisKey key = Me(); RedisKey key = Me();
db.KeyDelete(key); db.KeyDelete(key);
...@@ -45,7 +45,7 @@ public void AddHashEveryWay() ...@@ -45,7 +45,7 @@ public void AddHashEveryWay()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(3); var db = conn.GetDatabase();
RedisKey key = Me(); RedisKey key = Me();
db.KeyDelete(key); db.KeyDelete(key);
...@@ -77,7 +77,7 @@ public void AddSetEveryWay() ...@@ -77,7 +77,7 @@ public void AddSetEveryWay()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(3); var db = conn.GetDatabase();
RedisKey key = Me(); RedisKey key = Me();
db.KeyDelete(key); db.KeyDelete(key);
...@@ -98,7 +98,7 @@ public void AddSetEveryWayNumbers() ...@@ -98,7 +98,7 @@ public void AddSetEveryWayNumbers()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var db = conn.GetDatabase(3); var db = conn.GetDatabase();
RedisKey key = Me(); RedisKey key = Me();
db.KeyDelete(key); db.KeyDelete(key);
......
...@@ -29,11 +29,11 @@ public void Simple() ...@@ -29,11 +29,11 @@ public void Simple()
conn.RegisterProfiler(profiler); conn.RegisterProfiler(profiler);
conn.BeginProfiling(profiler.MyContext); conn.BeginProfiling(profiler.MyContext);
var db = conn.GetDatabase(4); var db = conn.GetDatabase();
db.StringSet(key, "world"); db.StringSet(key, "world");
var val = db.StringGet(key); var val = db.StringGet(key);
Assert.Equal("world", (string)val); Assert.Equal("world", (string)val);
var result=db.ScriptEvaluate(LuaScript.Prepare("return redis.call('get', @key)"), new { key = (RedisKey)key }); var result = db.ScriptEvaluate(LuaScript.Prepare("return redis.call('get', @key)"), new { key = (RedisKey)key });
Assert.Equal("world", result.AsString()); Assert.Equal("world", result.AsString());
var cmds = conn.FinishProfiling(profiler.MyContext); var cmds = conn.FinishProfiling(profiler.MyContext);
......
...@@ -20,7 +20,7 @@ public void ConnectToSSDB() ...@@ -20,7 +20,7 @@ public void ConnectToSSDB()
RedisKey key = Me(); RedisKey key = Me();
using (var conn = ConnectionMultiplexer.Connect(config)) using (var conn = ConnectionMultiplexer.Connect(config))
{ {
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
db.KeyDelete(key); db.KeyDelete(key);
Assert.True(db.StringGet(key).IsNull); Assert.True(db.StringGet(key).IsNull);
db.StringSet(key, "abc"); db.StringSet(key, "abc");
......
...@@ -18,23 +18,23 @@ public void KeysScan(bool supported) ...@@ -18,23 +18,23 @@ public void KeysScan(bool supported)
string[] disabledCommands = supported ? null : new[] { "scan" }; string[] disabledCommands = supported ? null : new[] { "scan" };
using (var conn = Create(disabledCommands: disabledCommands, allowAdmin: true)) using (var conn = Create(disabledCommands: disabledCommands, allowAdmin: true))
{ {
const int DB = 7; var dbId = TestConfig.GetDedicatedDB();
var db = conn.GetDatabase(DB); var db = conn.GetDatabase(dbId);
var prefix = Me() + ":"; var prefix = Me() + ":";
var server = GetServer(conn); var server = GetServer(conn);
server.FlushDatabase(DB); server.FlushDatabase(dbId);
for (int i = 0; i < 100; i++) for (int i = 0; i < 100; i++)
{ {
db.StringSet(prefix + i, Guid.NewGuid().ToString(), flags: CommandFlags.FireAndForget); db.StringSet(prefix + i, Guid.NewGuid().ToString(), flags: CommandFlags.FireAndForget);
} }
var seq = server.Keys(DB, pageSize: 50); var seq = server.Keys(dbId, pageSize: 50);
bool isScanning = seq is IScanningCursor; bool isScanning = seq is IScanningCursor;
Assert.Equal(supported, isScanning); Assert.Equal(supported, isScanning);
Assert.Equal(100, seq.Distinct().Count()); Assert.Equal(100, seq.Distinct().Count());
Assert.Equal(100, seq.Distinct().Count()); Assert.Equal(100, seq.Distinct().Count());
Assert.Equal(100, server.Keys(DB, prefix + "*").Distinct().Count()); Assert.Equal(100, server.Keys(dbId, prefix + "*").Distinct().Count());
// 7, 70, 71, ..., 79 // 7, 70, 71, ..., 79
Assert.Equal(11, server.Keys(DB, prefix + "7*").Distinct().Count()); Assert.Equal(11, server.Keys(dbId, prefix + "7*").Distinct().Count());
} }
} }
...@@ -44,15 +44,15 @@ public void ScansIScanning() ...@@ -44,15 +44,15 @@ public void ScansIScanning()
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
var prefix = Me() + Guid.NewGuid(); var prefix = Me() + Guid.NewGuid();
const int DB = 7; var dbId = TestConfig.GetDedicatedDB();
var db = conn.GetDatabase(DB); var db = conn.GetDatabase(dbId);
var server = GetServer(conn); var server = GetServer(conn);
server.FlushDatabase(DB); server.FlushDatabase(dbId);
for (int i = 0; i < 100; i++) for (int i = 0; i < 100; i++)
{ {
db.StringSet(prefix + i, Guid.NewGuid().ToString(), flags: CommandFlags.FireAndForget); db.StringSet(prefix + i, Guid.NewGuid().ToString(), flags: CommandFlags.FireAndForget);
} }
var seq = server.Keys(DB, prefix + "*", pageSize: 15); var seq = server.Keys(dbId, prefix + "*", pageSize: 15);
using (var iter = seq.GetEnumerator()) using (var iter = seq.GetEnumerator())
{ {
IScanningCursor s0 = (IScanningCursor)seq, s1 = (IScanningCursor)iter; IScanningCursor s0 = (IScanningCursor)seq, s1 = (IScanningCursor)iter;
...@@ -91,14 +91,13 @@ public void ScanResume() ...@@ -91,14 +91,13 @@ public void ScanResume()
{ {
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
const int DB = 7;
// only goes up to 3.*, so... // only goes up to 3.*, so...
Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scan), x => x.Scan); Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scan), x => x.Scan);
var db = conn.GetDatabase(DB); var dbId = TestConfig.GetDedicatedDB();
var db = conn.GetDatabase(dbId);
var prefix = Me(); var prefix = Me();
var server = GetServer(conn); var server = GetServer(conn);
server.FlushDatabase(DB); server.FlushDatabase(dbId);
int i; int i;
for (i = 0; i < 100; i++) for (i = 0; i < 100; i++)
{ {
...@@ -110,7 +109,7 @@ public void ScanResume() ...@@ -110,7 +109,7 @@ public void ScanResume()
int snapOffset = 0, snapPageSize = 0; int snapOffset = 0, snapPageSize = 0;
i = 0; i = 0;
var seq = server.Keys(DB, prefix + ":*", pageSize: 15); var seq = server.Keys(dbId, prefix + ":*", pageSize: 15);
foreach (var key in seq) foreach (var key in seq)
{ {
if (i == 57) if (i == 57)
...@@ -137,7 +136,7 @@ public void ScanResume() ...@@ -137,7 +136,7 @@ public void ScanResume()
// make the following assertion: // make the following assertion:
// Assert.Equal(12, snapOffset); // Assert.Equal(12, snapOffset);
seq = server.Keys(DB, prefix + ":*", pageSize: 15, cursor: snapCursor, pageOffset: snapOffset); seq = server.Keys(dbId, prefix + ":*", pageSize: 15, cursor: snapCursor, pageOffset: snapOffset);
var seqCur = (IScanningCursor)seq; var seqCur = (IScanningCursor)seq;
Assert.Equal(snapCursor, seqCur.Cursor); Assert.Equal(snapCursor, seqCur.Cursor);
Assert.Equal(snapPageSize, seqCur.PageSize); Assert.Equal(snapPageSize, seqCur.PageSize);
......
...@@ -484,7 +484,7 @@ public void LuaScriptWithWrappedDatabase() ...@@ -484,7 +484,7 @@ public void LuaScriptWithWrappedDatabase()
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scripting), f => f.Scripting); Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scripting), f => f.Scripting);
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
var wrappedDb = KeyspaceIsolation.DatabaseExtensions.WithKeyPrefix(db, "prefix-"); var wrappedDb = KeyspaceIsolation.DatabaseExtensions.WithKeyPrefix(db, "prefix-");
var key = Me(); var key = Me();
db.KeyDelete(key); db.KeyDelete(key);
...@@ -510,7 +510,7 @@ public void LoadedLuaScriptWithWrappedDatabase() ...@@ -510,7 +510,7 @@ public void LoadedLuaScriptWithWrappedDatabase()
using (var conn = Create(allowAdmin: true)) using (var conn = Create(allowAdmin: true))
{ {
Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scripting), f => f.Scripting); Skip.IfMissingFeature(conn, nameof(RedisFeatures.Scripting), f => f.Scripting);
var db = conn.GetDatabase(0); var db = conn.GetDatabase();
var wrappedDb = KeyspaceIsolation.DatabaseExtensions.WithKeyPrefix(db, "prefix2-"); var wrappedDb = KeyspaceIsolation.DatabaseExtensions.WithKeyPrefix(db, "prefix2-");
var key = Me(); var key = Me();
db.KeyDelete(key); db.KeyDelete(key);
......
...@@ -14,7 +14,7 @@ public void BlankPrefixYieldsSame_Bytes() ...@@ -14,7 +14,7 @@ public void BlankPrefixYieldsSame_Bytes()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var raw = conn.GetDatabase(1); var raw = conn.GetDatabase();
var prefixed = raw.WithKeyPrefix(new byte[0]); var prefixed = raw.WithKeyPrefix(new byte[0]);
Assert.Same(raw, prefixed); Assert.Same(raw, prefixed);
} }
...@@ -25,7 +25,7 @@ public void BlankPrefixYieldsSame_String() ...@@ -25,7 +25,7 @@ public void BlankPrefixYieldsSame_String()
{ {
using (var conn = Create()) using (var conn = Create())
{ {
var raw = conn.GetDatabase(1); var raw = conn.GetDatabase();
var prefixed = raw.WithKeyPrefix(""); var prefixed = raw.WithKeyPrefix("");
Assert.Same(raw, prefixed); Assert.Same(raw, prefixed);
} }
...@@ -37,7 +37,7 @@ public void NullPrefixIsError_Bytes() ...@@ -37,7 +37,7 @@ public void NullPrefixIsError_Bytes()
Assert.Throws<ArgumentNullException>(() => { Assert.Throws<ArgumentNullException>(() => {
using (var conn = Create()) using (var conn = Create())
{ {
var raw = conn.GetDatabase(1); var raw = conn.GetDatabase();
var prefixed = raw.WithKeyPrefix((byte[])null); var prefixed = raw.WithKeyPrefix((byte[])null);
} }
}); });
...@@ -49,7 +49,7 @@ public void NullPrefixIsError_String() ...@@ -49,7 +49,7 @@ public void NullPrefixIsError_String()
Assert.Throws<ArgumentNullException>(() => { Assert.Throws<ArgumentNullException>(() => {
using (var conn = Create()) using (var conn = Create())
{ {
var raw = conn.GetDatabase(1); var raw = conn.GetDatabase();
var prefixed = raw.WithKeyPrefix((string)null); var prefixed = raw.WithKeyPrefix((string)null);
} }
}); });
...@@ -72,7 +72,7 @@ public void BasicSmokeTest() ...@@ -72,7 +72,7 @@ public void BasicSmokeTest()
{ {
using(var conn = Create()) using(var conn = Create())
{ {
var raw = conn.GetDatabase(1); var raw = conn.GetDatabase();
var prefix = Me(); var prefix = Me();
var foo = raw.WithKeyPrefix(prefix); var foo = raw.WithKeyPrefix(prefix);
...@@ -106,31 +106,32 @@ public void ConditionTest() ...@@ -106,31 +106,32 @@ public void ConditionTest()
{ {
using(var conn = Create()) using(var conn = Create())
{ {
var raw = conn.GetDatabase(2); var raw = conn.GetDatabase();
var foo = raw.WithKeyPrefix("tran:"); var prefix = Me() + ":";
var foo = raw.WithKeyPrefix(prefix);
raw.KeyDelete("tran:abc"); raw.KeyDelete(prefix + "abc");
raw.KeyDelete("tran:i"); raw.KeyDelete(prefix + "i");
// execute while key exists // execute while key exists
raw.StringSet("tran:abc", "def"); raw.StringSet(prefix + "abc", "def");
var tran = foo.CreateTransaction(); var tran = foo.CreateTransaction();
tran.AddCondition(Condition.KeyExists("abc")); tran.AddCondition(Condition.KeyExists("abc"));
tran.StringIncrementAsync("i"); tran.StringIncrementAsync("i");
tran.Execute(); tran.Execute();
int i = (int)raw.StringGet("tran:i"); int i = (int)raw.StringGet(prefix + "i");
Assert.Equal(1, i); Assert.Equal(1, i);
// repeat without key // repeat without key
raw.KeyDelete("tran:abc"); raw.KeyDelete(prefix + "abc");
tran = foo.CreateTransaction(); tran = foo.CreateTransaction();
tran.AddCondition(Condition.KeyExists("abc")); tran.AddCondition(Condition.KeyExists("abc"));
tran.StringIncrementAsync("i"); tran.StringIncrementAsync("i");
tran.Execute(); tran.Execute();
i = (int)raw.StringGet("tran:i"); i = (int)raw.StringGet(prefix + "i");
Assert.Equal(1, i); Assert.Equal(1, i);
} }
} }
......
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