Skip to content

Commit 5713c3a

Browse files
committed
Correct merge.
1 parent 3356cff commit 5713c3a

File tree

1 file changed

+0
-163
lines changed

1 file changed

+0
-163
lines changed

test/Garnet.test/RespTests.cs

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -3863,169 +3863,6 @@ public void HelloAuthErrorTest()
38633863
ClassicAssert.AreEqual(2, (int)resultDict["proto"]);
38643864
}
38653865

3866-
[Test]
3867-
public async Task InlineCommandParseTest()
3868-
{
3869-
var clientName = "name";
3870-
var key = "key";
3871-
var value = "1";
3872-
3873-
using var c = TestUtils.GetGarnetClientSession(rawResult: true, rawSend: true);
3874-
c.Connect();
3875-
3876-
// Test inline command without arguments
3877-
var response = await c.ExecuteAsync("HELLO");
3878-
ClassicAssert.AreEqual('*', response[0]);
3879-
// Test lowercase
3880-
response = await c.ExecuteAsync("hello 3");
3881-
ClassicAssert.AreEqual('%', response[0]);
3882-
// Test extranous whitespace
3883-
response = await c.ExecuteAsync("HELLO 2\t ");
3884-
ClassicAssert.AreEqual('*', response[0]);
3885-
// References accept this too
3886-
response = await c.ExecuteAsync("HElLO 3 SETNAME a SETNAME b");
3887-
ClassicAssert.AreEqual('%', response[0]);
3888-
// Test setting client name inline
3889-
response = await c.ExecuteAsync($"HELLO 2 SETNAME {clientName}");
3890-
ClassicAssert.AreEqual('*', response[0]);
3891-
3892-
// Should fail due to missing argument. We test such failures to ensure
3893-
// readhead is not messed up and commands can be placed afterwards.
3894-
response = await c.ExecuteAsync("CLIENT");
3895-
ClassicAssert.AreEqual('-', response[0]);
3896-
c.RawResult = false;
3897-
// Test client name was actually set
3898-
response = await c.ExecuteAsync("CLIENT GETNAME");
3899-
ClassicAssert.AreEqual(clientName, response);
3900-
c.RawResult = true;
3901-
3902-
// Test inline ping
3903-
response = await c.ExecuteAsync("PING");
3904-
ClassicAssert.AreEqual("+PONG\r\n", response);
3905-
3906-
// Test accepting both CRLF and LF as terminating characters.
3907-
response = await c.ExecuteAsync("PING\nPING");
3908-
ClassicAssert.AreEqual("+PONG\r\n+PONG\r\n", response);
3909-
// CR is a valid separator
3910-
response = await c.ExecuteAsync("PING\rPING");
3911-
ClassicAssert.AreEqual("$4\r\nPING\r\n", response);
3912-
// As is TAB
3913-
response = await c.ExecuteAsync("PING\tPING");
3914-
ClassicAssert.AreEqual("$4\r\nPING\r\n", response);
3915-
3916-
// Test command failure
3917-
response = await c.ExecuteAsync("PIN");
3918-
ClassicAssert.AreEqual('-', response[0]);
3919-
3920-
// Test ordinary commands
3921-
response = await c.ExecuteAsync($"SET {key} {value}");
3922-
ClassicAssert.AreEqual("+OK\r\n", response);
3923-
response = await c.ExecuteAsync($"GET {key}");
3924-
ClassicAssert.AreEqual($"${value.Length}\r\n{value}\r\n", response);
3925-
response = await c.ExecuteAsync($"EXISTS {key}");
3926-
ClassicAssert.AreEqual(":1\r\n", response);
3927-
response = await c.ExecuteAsync($"DEL {key}");
3928-
ClassicAssert.AreEqual(":1\r\n", response);
3929-
3930-
// Test command failure in normal RESP doesn't interfere
3931-
response = await c.ExecuteAsync("*1\r\n$3\r\nPIN");
3932-
ClassicAssert.AreEqual('-', response[0]);
3933-
3934-
// Test quit
3935-
response = await c.ExecuteAsync("QUIT");
3936-
ClassicAssert.AreEqual("+OK\r\n", response);
3937-
}
3938-
3939-
[Test]
3940-
public async Task InlineCommandEscapeTest()
3941-
{
3942-
var key = "key";
3943-
3944-
using var c = TestUtils.GetGarnetClientSession(rawResult: true, rawSend: true);
3945-
c.Connect();
3946-
3947-
var response = await c.ExecuteAsync("PING \\t");
3948-
ClassicAssert.AreEqual("$2\r\n\\t\r\n", response);
3949-
// With ' quoting most escapes aren't recognized
3950-
response = await c.ExecuteAsync("PING '\\t'");
3951-
ClassicAssert.AreEqual("$2\r\n\\t\r\n", response);
3952-
// Except this one form of escaping
3953-
response = await c.ExecuteAsync("PING '\'\\t\''");
3954-
ClassicAssert.AreEqual("$4\r\n'\\t'\r\n", response);
3955-
3956-
// Test escape
3957-
response = await c.ExecuteAsync("PING \"\\t\"");
3958-
ClassicAssert.AreEqual("$1\r\n\t\r\n", response);
3959-
3960-
// This should lead to quoting failure
3961-
response = await c.ExecuteAsync(@"PING ""\\\""");
3962-
ClassicAssert.AreEqual('-', response[0]);
3963-
// This should work
3964-
response = await c.ExecuteAsync(@"PING ""\\\\""");
3965-
ClassicAssert.AreEqual("$2\r\n\\\\\r\n", response);
3966-
3967-
// Incomplete hex escape 1
3968-
response = await c.ExecuteAsync("PING \"\\x\"");
3969-
ClassicAssert.AreEqual("$1\r\nx\r\n", response);
3970-
// Incomplete hex escape 2
3971-
response = await c.ExecuteAsync("PING \"\\x0\"");
3972-
ClassicAssert.AreEqual("$2\r\nx0\r\n", response);
3973-
// Invalid hex escape
3974-
response = await c.ExecuteAsync("PING \"\\xGG\"");
3975-
ClassicAssert.AreEqual("$3\r\nxGG\r\n", response);
3976-
// Complete hex escape
3977-
response = await c.ExecuteAsync("PING \"\\x0A\"");
3978-
ClassicAssert.AreEqual("$1\r\n\n\r\n", response);
3979-
3980-
// Test escapes in command position
3981-
response = await c.ExecuteAsync(@"""\x50\x49\x4E\x47""");
3982-
ClassicAssert.AreEqual("+PONG\r\n", response);
3983-
response = await c.ExecuteAsync(@"""P\i\x6Eg""");
3984-
ClassicAssert.AreEqual("+PONG\r\n", response);
3985-
3986-
// Test value being passed
3987-
response = await c.ExecuteAsync($"SET {key} \"a\\x0Ab\"");
3988-
ClassicAssert.AreEqual("+OK\r\n", response);
3989-
response = await c.ExecuteAsync($"GET {key}");
3990-
ClassicAssert.AreEqual("$3\r\na\nb\r\n", response);
3991-
}
3992-
3993-
[Test]
3994-
public async Task InlineCommandQuoteTest()
3995-
{
3996-
using var c = TestUtils.GetGarnetClientSession(rawResult: true, rawSend: true);
3997-
c.Connect();
3998-
3999-
// Test quoted argument
4000-
var response = await c.ExecuteAsync("ping \"hello world\"");
4001-
ClassicAssert.AreEqual("$11\r\nhello world\r\n", response);
4002-
4003-
// Test quoting failure
4004-
// We need to test failures too to be sure readHead is reset right,
4005-
// and that there are no leftovers that would interfere with future commands.
4006-
response = await c.ExecuteAsync("PING 'unfinished quote");
4007-
ClassicAssert.AreEqual('-', response[0]);
4008-
4009-
// Test empty and short strings
4010-
response = await c.ExecuteAsync("ECHO ''");
4011-
ClassicAssert.AreEqual("$0\r\n\r\n", response);
4012-
4013-
response = await c.ExecuteAsync("ECHO 'a'");
4014-
ClassicAssert.AreEqual("$1\r\na\r\n", response);
4015-
4016-
// We can even accept commands formed like this
4017-
response = await c.ExecuteAsync("\"PING\"\tword ");
4018-
ClassicAssert.AreEqual("$4\r\nword\r\n", response);
4019-
response = await c.ExecuteAsync("PINg \"hello 'world'!\"");
4020-
ClassicAssert.AreEqual("$14\r\nhello 'world'!\r\n", response);
4021-
response = await c.ExecuteAsync("P'ING' ab");
4022-
ClassicAssert.AreEqual("$2\r\nab\r\n", response);
4023-
4024-
// Extension
4025-
response = await c.ExecuteAsync("PING '\"'\"''");
4026-
ClassicAssert.AreEqual("$4\r\n\"'\"'\r\n", response);
4027-
}
4028-
40293866
[Test]
40303867
[TestCase([2, "$-1\r\n", "$1\r\n", "*4", '*'], Description = "RESP2 output")]
40313868
[TestCase([3, "_\r\n", ",", "%2", '~'], Description = "RESP3 output")]

0 commit comments

Comments
 (0)