Skip to content

Commit b6cd49f

Browse files
committed
wip
1 parent 56d4563 commit b6cd49f

7 files changed

Lines changed: 100 additions & 67 deletions

test/Garnet.test/Resp/ETag/EtagCoverageTestsBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public void TearDown()
6363
TestUtils.DeleteDirectory(TestUtils.MethodTestDir);
6464
}
6565

66-
protected async Task CheckCommandsAsync(RespCommand command, object[] commandArgs, Action<RedisResult> verifyResult, int[] checkKeysWithEtag = null)
66+
protected async Task CheckCommandAsync(RespCommand command, object[] commandArgs, Action<RedisResult> verifyResult, int[] checkKeysWithEtag = null)
6767
{
6868
await using var redis = await ConnectionMultiplexer.ConnectAsync(TestUtils.GetConfig());
6969
var db = redis.GetDatabase(0);
@@ -105,7 +105,7 @@ protected async Task CheckCommandsAsync(RespCommand command, object[] commandArg
105105
}
106106
}
107107

108-
protected async Task CheckBlockingCommandsAsync(RespCommand command, object[] commandArgs, Action<byte[]> verifyResult, int[] checkKeysWithEtag = null)
108+
protected async Task CheckBlockingCommandAsync(RespCommand command, object[] commandArgs, Action<byte[]> verifyResult, int[] checkKeysWithEtag = null)
109109
{
110110
await using var redis = await ConnectionMultiplexer.ConnectAsync(TestUtils.GetConfig());
111111
var db = redis.GetDatabase(0);

test/Garnet.test/Resp/ETag/GeoCommandsETagCoverageTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ [new GeoEntry(13.404954, 52.520008, "Berlin")]
2626
public async Task GeoAddETagAdvancedTestAsync()
2727
{
2828
var cmdArgs = new object[] { GeoKeys[0], GeoData[1][0].Longitude, GeoData[1][0].Latitude, GeoData[1][0].Member };
29-
await CheckCommandsAsync(RespCommand.GEOADD, cmdArgs, VerifyResult);
29+
await CheckCommandAsync(RespCommand.GEOADD, cmdArgs, VerifyResult);
3030

3131
static void VerifyResult(RedisResult result)
3232
{
@@ -38,7 +38,7 @@ static void VerifyResult(RedisResult result)
3838
public async Task GeoRadiusETagAdvancedTestAsync()
3939
{
4040
var cmdArgs = new object[] { GeoKeys[1], GeoData[1][0].Longitude, GeoData[1][0].Latitude, 1000, "KM", "STORE", GeoKeys[0] };
41-
await CheckCommandsAsync(RespCommand.GEORADIUS, cmdArgs, VerifyResult);
41+
await CheckCommandAsync(RespCommand.GEORADIUS, cmdArgs, VerifyResult);
4242

4343
static void VerifyResult(RedisResult result)
4444
{
@@ -50,7 +50,7 @@ static void VerifyResult(RedisResult result)
5050
public async Task GeoRadiusByMemberETagAdvancedTestAsync()
5151
{
5252
var cmdArgs = new object[] { GeoKeys[1], GeoData[1][0].Member, 1000, "KM", "STORE", GeoKeys[0] };
53-
await CheckCommandsAsync(RespCommand.GEORADIUSBYMEMBER, cmdArgs, VerifyResult);
53+
await CheckCommandAsync(RespCommand.GEORADIUSBYMEMBER, cmdArgs, VerifyResult);
5454

5555
static void VerifyResult(RedisResult result)
5656
{
@@ -62,7 +62,7 @@ static void VerifyResult(RedisResult result)
6262
public async Task GeoSearchStoreETagAdvancedTestAsync()
6363
{
6464
var cmdArgs = new object[] { GeoKeys[0], GeoKeys[1], "FROMMEMBER", GeoData[1][0].Member, "BYRADIUS", 1000, "KM" };
65-
await CheckCommandsAsync(RespCommand.GEOSEARCHSTORE, cmdArgs, VerifyResult);
65+
await CheckCommandAsync(RespCommand.GEOSEARCHSTORE, cmdArgs, VerifyResult);
6666

6767
static void VerifyResult(RedisResult result)
6868
{

test/Garnet.test/Resp/ETag/HashCommandsETagCoverageTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ [new HashEntry("c1", "v3.1")]
2727
public async Task HCollectETagAdvancedTestAsync()
2828
{
2929
var cmdArgs = new object[] { HashKeys[0] };
30-
await CheckCommandsAsync(RespCommand.HCOLLECT, cmdArgs, VerifyResult);
30+
await CheckCommandAsync(RespCommand.HCOLLECT, cmdArgs, VerifyResult);
3131

3232
static void VerifyResult(RedisResult result)
3333
{
@@ -39,7 +39,7 @@ static void VerifyResult(RedisResult result)
3939
public async Task HDelETagAdvancedTestAsync()
4040
{
4141
var cmdArgs = new object[] { HashKeys[0], HashData[0][0].Name };
42-
await CheckCommandsAsync(RespCommand.HDEL, cmdArgs, VerifyResult);
42+
await CheckCommandAsync(RespCommand.HDEL, cmdArgs, VerifyResult);
4343

4444
static void VerifyResult(RedisResult result)
4545
{
@@ -51,7 +51,7 @@ static void VerifyResult(RedisResult result)
5151
public async Task HExpireETagAdvancedTestAsync()
5252
{
5353
var cmdArgs = new object[] { HashKeys[0], 2, "FIELDS", 1, HashData[0][0].Name };
54-
await CheckCommandsAsync(RespCommand.HEXPIRE, cmdArgs, VerifyResult);
54+
await CheckCommandAsync(RespCommand.HEXPIRE, cmdArgs, VerifyResult);
5555

5656
static void VerifyResult(RedisResult result)
5757
{
@@ -66,7 +66,7 @@ public async Task HExpireAtETagAdvancedTestAsync()
6666
{
6767
var expireAt = DateTimeOffset.UtcNow.AddSeconds(3).ToUnixTimeSeconds();
6868
var cmdArgs = new object[] { HashKeys[0], expireAt, "FIELDS", 1, HashData[0][0].Name };
69-
await CheckCommandsAsync(RespCommand.HEXPIREAT, cmdArgs, VerifyResult);
69+
await CheckCommandAsync(RespCommand.HEXPIREAT, cmdArgs, VerifyResult);
7070

7171
static void VerifyResult(RedisResult result)
7272
{
@@ -80,7 +80,7 @@ static void VerifyResult(RedisResult result)
8080
public async Task HIncrByETagAdvancedTestAsync()
8181
{
8282
var cmdArgs = new object[] { HashKeys[0], HashData[0][0].Name, 2 };
83-
await CheckCommandsAsync(RespCommand.HINCRBY, cmdArgs, VerifyResult);
83+
await CheckCommandAsync(RespCommand.HINCRBY, cmdArgs, VerifyResult);
8484

8585
static void VerifyResult(RedisResult result)
8686
{
@@ -92,7 +92,7 @@ static void VerifyResult(RedisResult result)
9292
public async Task HIncrByFloatETagAdvancedTestAsync()
9393
{
9494
var cmdArgs = new object[] { HashKeys[0], HashData[0][1].Name, 2.2 };
95-
await CheckCommandsAsync(RespCommand.HINCRBYFLOAT, cmdArgs, VerifyResult);
95+
await CheckCommandAsync(RespCommand.HINCRBYFLOAT, cmdArgs, VerifyResult);
9696

9797
static void VerifyResult(RedisResult result)
9898
{
@@ -104,7 +104,7 @@ static void VerifyResult(RedisResult result)
104104
public async Task HMSetETagAdvancedTestAsync()
105105
{
106106
var cmdArgs = new object[] { HashKeys[0], HashData[1][0].Name, HashData[1][0].Value };
107-
await CheckCommandsAsync(RespCommand.HMSET, cmdArgs, VerifyResult);
107+
await CheckCommandAsync(RespCommand.HMSET, cmdArgs, VerifyResult);
108108

109109
static void VerifyResult(RedisResult result)
110110
{
@@ -116,7 +116,7 @@ static void VerifyResult(RedisResult result)
116116
public async Task HPExpireETagAdvancedTestAsync()
117117
{
118118
var cmdArgs = new object[] { HashKeys[0], 2000, "FIELDS", 1, HashData[0][0].Name };
119-
await CheckCommandsAsync(RespCommand.HPEXPIRE, cmdArgs, VerifyResult);
119+
await CheckCommandAsync(RespCommand.HPEXPIRE, cmdArgs, VerifyResult);
120120

121121
static void VerifyResult(RedisResult result)
122122
{
@@ -131,7 +131,7 @@ public async Task HPExpireAtETagAdvancedTestAsync()
131131
{
132132
var expireAt = DateTimeOffset.UtcNow.AddSeconds(3).ToUnixTimeMilliseconds();
133133
var cmdArgs = new object[] { HashKeys[0], expireAt, "FIELDS", 1, HashData[0][0].Name };
134-
await CheckCommandsAsync(RespCommand.HPEXPIREAT, cmdArgs, VerifyResult);
134+
await CheckCommandAsync(RespCommand.HPEXPIREAT, cmdArgs, VerifyResult);
135135

136136
static void VerifyResult(RedisResult result)
137137
{
@@ -145,7 +145,7 @@ static void VerifyResult(RedisResult result)
145145
public async Task HPersistETagAdvancedTestAsync()
146146
{
147147
var cmdArgs = new object[] { HashKeys[0], "FIELDS", 1, HashData[0][0].Name };
148-
await CheckCommandsAsync(RespCommand.HPERSIST, cmdArgs, VerifyResult);
148+
await CheckCommandAsync(RespCommand.HPERSIST, cmdArgs, VerifyResult);
149149

150150
static void VerifyResult(RedisResult result)
151151
{
@@ -159,7 +159,7 @@ static void VerifyResult(RedisResult result)
159159
public async Task HSetETagAdvancedTestAsync()
160160
{
161161
var cmdArgs = new object[] { HashKeys[0], HashData[1][0].Name, HashData[1][0].Value };
162-
await CheckCommandsAsync(RespCommand.HSET, cmdArgs, VerifyResult);
162+
await CheckCommandAsync(RespCommand.HSET, cmdArgs, VerifyResult);
163163

164164
static void VerifyResult(RedisResult result)
165165
{
@@ -171,7 +171,7 @@ static void VerifyResult(RedisResult result)
171171
public async Task HSetNxETagAdvancedTestAsync()
172172
{
173173
var cmdArgs = new object[] { HashKeys[0], HashData[1][0].Name, HashData[1][0].Value };
174-
await CheckCommandsAsync(RespCommand.HSETNX, cmdArgs, VerifyResult);
174+
await CheckCommandAsync(RespCommand.HSETNX, cmdArgs, VerifyResult);
175175

176176
static void VerifyResult(RedisResult result)
177177
{

test/Garnet.test/Resp/ETag/ListCommandsETagCoverageTests.cs

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public async Task LInsertETagAdvancedTestAsync()
2828
{
2929
var cmdArgs = new object[] { ListKeys[0], "AFTER", ListData[0][1], ListData[1][0] };
3030

31-
await CheckCommandsAsync(RespCommand.LINSERT, cmdArgs, VerifyResult);
31+
await CheckCommandAsync(RespCommand.LINSERT, cmdArgs, VerifyResult);
3232

3333
static void VerifyResult(RedisResult result)
3434
{
@@ -41,7 +41,7 @@ public async Task LMoveETagAdvancedTestAsync()
4141
{
4242
var cmdArgs = new object[] { ListKeys[1], ListKeys[0], "LEFT", "RIGHT" };
4343

44-
await CheckCommandsAsync(RespCommand.LMOVE, cmdArgs, VerifyResult, [0, 1]);
44+
await CheckCommandAsync(RespCommand.LMOVE, cmdArgs, VerifyResult, [0, 1]);
4545

4646
static void VerifyResult(RedisResult result)
4747
{
@@ -54,7 +54,7 @@ public async Task LMPopETagAdvancedTestAsync()
5454
{
5555
var cmdArgs = new object[] { 1, ListKeys[0], "LEFT" };
5656

57-
await CheckCommandsAsync(RespCommand.LMPOP, cmdArgs, VerifyResult);
57+
await CheckCommandAsync(RespCommand.LMPOP, cmdArgs, VerifyResult);
5858

5959
static void VerifyResult(RedisResult result)
6060
{
@@ -72,7 +72,7 @@ public async Task LPopETagAdvancedTestAsync()
7272
{
7373
var cmdArgs = new object[] { ListKeys[0] };
7474

75-
await CheckCommandsAsync(RespCommand.LPOP, cmdArgs, VerifyResult);
75+
await CheckCommandAsync(RespCommand.LPOP, cmdArgs, VerifyResult);
7676

7777
static void VerifyResult(RedisResult result)
7878
{
@@ -85,7 +85,7 @@ public async Task LPushETagAdvancedTestAsync()
8585
{
8686
var cmdArgs = new object[] { ListKeys[0], ListData[1][0] };
8787

88-
await CheckCommandsAsync(RespCommand.LPUSH, cmdArgs, VerifyResult);
88+
await CheckCommandAsync(RespCommand.LPUSH, cmdArgs, VerifyResult);
8989

9090
static void VerifyResult(RedisResult result)
9191
{
@@ -98,7 +98,7 @@ public async Task LPushXETagAdvancedTestAsync()
9898
{
9999
var cmdArgs = new object[] { ListKeys[0], ListData[1][0] };
100100

101-
await CheckCommandsAsync(RespCommand.LPUSHX, cmdArgs, VerifyResult);
101+
await CheckCommandAsync(RespCommand.LPUSHX, cmdArgs, VerifyResult);
102102

103103
static void VerifyResult(RedisResult result)
104104
{
@@ -111,7 +111,7 @@ public async Task LRemETagAdvancedTestAsync()
111111
{
112112
var cmdArgs = new object[] { ListKeys[0], 0, ListData[0][0] };
113113

114-
await CheckCommandsAsync(RespCommand.LREM, cmdArgs, VerifyResult);
114+
await CheckCommandAsync(RespCommand.LREM, cmdArgs, VerifyResult);
115115

116116
static void VerifyResult(RedisResult result)
117117
{
@@ -124,7 +124,7 @@ public async Task RPopETagAdvancedTestAsync()
124124
{
125125
var cmdArgs = new object[] { ListKeys[0] };
126126

127-
await CheckCommandsAsync(RespCommand.RPOP, cmdArgs, VerifyResult);
127+
await CheckCommandAsync(RespCommand.RPOP, cmdArgs, VerifyResult);
128128

129129
static void VerifyResult(RedisResult result)
130130
{
@@ -137,7 +137,7 @@ public async Task RPopLPushETagAdvancedTestAsync()
137137
{
138138
var cmdArgs = new object[] { ListKeys[0], ListKeys[1] };
139139

140-
await CheckCommandsAsync(RespCommand.RPOPLPUSH, cmdArgs, VerifyResult, [0, 1]);
140+
await CheckCommandAsync(RespCommand.RPOPLPUSH, cmdArgs, VerifyResult, [0, 1]);
141141

142142
static void VerifyResult(RedisResult result)
143143
{
@@ -150,7 +150,7 @@ public async Task RPushETagAdvancedTestAsync()
150150
{
151151
var cmdArgs = new object[] { ListKeys[0], ListData[1][0] };
152152

153-
await CheckCommandsAsync(RespCommand.RPUSH, cmdArgs, VerifyResult);
153+
await CheckCommandAsync(RespCommand.RPUSH, cmdArgs, VerifyResult);
154154

155155
static void VerifyResult(RedisResult result)
156156
{
@@ -163,7 +163,7 @@ public async Task RPushXETagAdvancedTestAsync()
163163
{
164164
var cmdArgs = new object[] { ListKeys[0], ListData[1][0] };
165165

166-
await CheckCommandsAsync(RespCommand.RPUSHX, cmdArgs, VerifyResult);
166+
await CheckCommandAsync(RespCommand.RPUSHX, cmdArgs, VerifyResult);
167167

168168
static void VerifyResult(RedisResult result)
169169
{
@@ -176,7 +176,7 @@ public async Task LSetETagAdvancedTestAsync()
176176
{
177177
var cmdArgs = new object[] { ListKeys[0], 0, ListData[1][0] };
178178

179-
await CheckCommandsAsync(RespCommand.LSET, cmdArgs, VerifyResult);
179+
await CheckCommandAsync(RespCommand.LSET, cmdArgs, VerifyResult);
180180

181181
static void VerifyResult(RedisResult result)
182182
{
@@ -189,7 +189,7 @@ public async Task LTrimETagAdvancedTestAsync()
189189
{
190190
var cmdArgs = new object[] { ListKeys[0], 0, 1 };
191191

192-
await CheckCommandsAsync(RespCommand.LTRIM, cmdArgs, VerifyResult);
192+
await CheckCommandAsync(RespCommand.LTRIM, cmdArgs, VerifyResult);
193193

194194
static void VerifyResult(RedisResult result)
195195
{
@@ -200,13 +200,13 @@ static void VerifyResult(RedisResult result)
200200
[Test]
201201
public async Task BLMoveETagAdvancedTestAsync()
202202
{
203-
var cmdArgs = new object[] { ListKeys[0], ListKeys[1], "LEFT", "RIGHT", 5 };
203+
var cmdArgs = new object[] { ListKeys[1], ListKeys[0], "LEFT", "RIGHT", 5 };
204204

205-
await CheckBlockingCommandsAsync(RespCommand.BLMOVE, cmdArgs, VerifyResult, [0, 1]);
205+
await CheckBlockingCommandAsync(RespCommand.BLMOVE, cmdArgs, VerifyResult, [0, 1]);
206206

207207
static void VerifyResult(byte[] result)
208208
{
209-
var elem1 = ListData[0][0];
209+
var elem1 = ListData[1][0];
210210
var btExpectedResponse = $"${elem1.ToString().Length}\r\n{elem1.ToString()}\r\n";
211211
TestUtils.AssertEqualUpToExpectedLength(btExpectedResponse, result);
212212
}
@@ -217,7 +217,7 @@ public async Task BLPopETagAdvancedTestAsync()
217217
{
218218
var cmdArgs = new object[] { ListKeys[0], ListKeys[1], 5 };
219219

220-
await CheckBlockingCommandsAsync(RespCommand.BLPOP, cmdArgs, VerifyResult);
220+
await CheckBlockingCommandAsync(RespCommand.BLPOP, cmdArgs, VerifyResult);
221221

222222
static void VerifyResult(byte[] result)
223223
{
@@ -229,12 +229,30 @@ static void VerifyResult(byte[] result)
229229
}
230230
}
231231

232+
[Test]
233+
public async Task BLMPopETagAdvancedTestAsync()
234+
{
235+
var cmdArgs = new object[] { 5, 2, ListKeys[0], ListKeys[1], "LEFT", "COUNT", 2 };
236+
237+
await CheckBlockingCommandAsync(RespCommand.BLMPOP, cmdArgs, VerifyResult);
238+
239+
static void VerifyResult(byte[] result)
240+
{
241+
var key1 = ListKeys[0].ToString();
242+
var elem1 = ListData[0][0];
243+
var elem2 = ListData[0][1];
244+
var btExpectedResponse =
245+
$"*2\r\n${key1.Length}\r\n{key1}\r\n*2\r\n${elem1.ToString().Length}\r\n{elem1.ToString()}\r\n${elem2.ToString().Length}\r\n{elem2.ToString()}\r\n";
246+
TestUtils.AssertEqualUpToExpectedLength(btExpectedResponse, result);
247+
}
248+
}
249+
232250
[Test]
233251
public async Task BRPopETagAdvancedTestAsync()
234252
{
235253
var cmdArgs = new object[] { ListKeys[0], ListKeys[1], 5 };
236254

237-
await CheckBlockingCommandsAsync(RespCommand.BRPOP, cmdArgs, VerifyResult);
255+
await CheckBlockingCommandAsync(RespCommand.BRPOP, cmdArgs, VerifyResult);
238256

239257
static void VerifyResult(byte[] result)
240258
{
@@ -246,6 +264,21 @@ static void VerifyResult(byte[] result)
246264
}
247265
}
248266

267+
[Test]
268+
public async Task BRPopLPushETagAdvancedTestAsync()
269+
{
270+
var cmdArgs = new object[] { ListKeys[1], ListKeys[0], 5 };
271+
272+
await CheckBlockingCommandAsync(RespCommand.BRPOPLPUSH, cmdArgs, VerifyResult, [0, 1]);
273+
274+
static void VerifyResult(byte[] result)
275+
{
276+
var elem1 = ListData[1][^1];
277+
var btExpectedResponse = $"${elem1.ToString().Length}\r\n{elem1.ToString()}\r\n";
278+
TestUtils.AssertEqualUpToExpectedLength(btExpectedResponse, result);
279+
}
280+
}
281+
249282
public override void DataSetUp()
250283
{
251284
using var redis = ConnectionMultiplexer.Connect(TestUtils.GetConfig());

0 commit comments

Comments
 (0)