Skip to content

Commit 256e613

Browse files
committed
Modify MEMORY USAGE tests (#2573)
* Modify MEMORY USAGE tests According to Redis developers, MEMORY USAGE response should not be tested with exact values. * add note * edit comment
1 parent ba1d914 commit 256e613

File tree

1 file changed

+35
-8
lines changed

1 file changed

+35
-8
lines changed

src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertNotNull;
5+
import static org.junit.Assert.assertNull;
56
import static org.junit.Assert.assertTrue;
67

78
import java.util.List;
@@ -201,15 +202,41 @@ public void memoryDoctorBinary() {
201202

202203
@Test
203204
public void memoryUsageString() {
204-
jedis.set("foo", "ba");
205-
Long usage = jedis.memoryUsage("foo");
206-
assertEquals(49 + 3, (long) usage);
205+
// Note: It has been recommended not to base MEMORY USAGE test on exact value, as the response
206+
// may subject to be 'tuned' especially targeting a major Redis release.
207207

208-
jedis.lpush("loo", "ba", "da", "sha");
209-
usage = jedis.memoryUsage("loo", 2);
210-
assertEquals(141 + 3, (long) usage);
208+
jedis.set("foo", "bar");
209+
long usage = jedis.memoryUsage("foo");
210+
assertTrue(usage >= 30);
211+
assertTrue(usage <= 80);
212+
213+
jedis.lpush("foobar", "fo", "ba", "sha");
214+
usage = jedis.memoryUsage("foobar", 2);
215+
assertTrue(usage >= 110);
216+
assertTrue(usage <= 190);
217+
218+
assertNull(jedis.memoryUsage("roo", 2));
219+
}
220+
221+
@Test
222+
public void memoryUsageBinary() {
223+
// Note: It has been recommended not to base MEMORY USAGE test on exact value, as the response
224+
// may subject to be 'tuned' especially targeting a major Redis release.
225+
226+
byte[] bfoo = {0x01, 0x02, 0x03, 0x04};
227+
byte[] bbar = {0x05, 0x06, 0x07, 0x08};
228+
byte[] bfoobar = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
229+
230+
jedis.set(bfoo, bbar);
231+
long usage = jedis.memoryUsage(bfoo);
232+
assertTrue(usage >= 30);
233+
assertTrue(usage <= 80);
234+
235+
jedis.lpush(bfoobar, new byte[]{0x01, 0x02}, new byte[]{0x05, 0x06}, new byte[]{0x00});
236+
usage = jedis.memoryUsage(bfoobar, 2);
237+
assertTrue(usage >= 110);
238+
assertTrue(usage <= 190);
211239

212-
usage = jedis.memoryUsage("roo", 2);
213-
assertEquals(null, usage);
240+
assertNull(jedis.memoryUsage("roo", 2));
214241
}
215242
}

0 commit comments

Comments
 (0)