From 7c9825205ad1f277214c3af0a3345f4bc509ef6b Mon Sep 17 00:00:00 2001 From: vanshavenger Date: Sun, 6 Oct 2024 22:30:18 +0530 Subject: [PATCH 1/3] FIX: Delete Command with 0 Arguments --- internal/eval/eval.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/eval/eval.go b/internal/eval/eval.go index e71b2d59e..295201541 100644 --- a/internal/eval/eval.go +++ b/internal/eval/eval.go @@ -1640,6 +1640,10 @@ func evalTTL(args []string, store *dstore.Store) []byte { func evalDEL(args []string, store *dstore.Store) []byte { var countDeleted = 0 + if len(args) < 1 { + return diceerrors.NewErrArity("DEL") + } + for _, key := range args { if ok := store.Del(key); ok { countDeleted++ From acec2220e49dca6f659758ef3afad2383e1513f9 Mon Sep 17 00:00:00 2001 From: vanshavenger Date: Sun, 6 Oct 2024 22:49:07 +0530 Subject: [PATCH 2/3] Update: DEL test suites --- internal/eval/eval_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/eval/eval_test.go b/internal/eval/eval_test.go index c99455823..2486f515b 100644 --- a/internal/eval/eval_test.go +++ b/internal/eval/eval_test.go @@ -1937,12 +1937,12 @@ func testEvalDel(t *testing.T, store *dstore.Store) { "nil value": { setup: func() {}, input: nil, - output: []byte(":0\r\n"), + output: clientio.Encode(errors.New("ERR wrong number of arguments for 'del' command"), false), }, "empty array": { setup: func() {}, input: []string{}, - output: []byte(":0\r\n"), + output: clientio.Encode(errors.New("ERR wrong number of arguments for 'del' command"), false), }, "key does not exist": { setup: func() {}, From 7d616d6d88fc1eeec1900d907e1fafdebdded3a2 Mon Sep 17 00:00:00 2001 From: vanshavenger Date: Sun, 6 Oct 2024 23:43:18 +0530 Subject: [PATCH 3/3] ENH: Add Integration test for DEL with no Args --- integration_tests/commands/async/del_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/integration_tests/commands/async/del_test.go b/integration_tests/commands/async/del_test.go index 4f0284523..2e31fa76d 100644 --- a/integration_tests/commands/async/del_test.go +++ b/integration_tests/commands/async/del_test.go @@ -30,6 +30,11 @@ func TestDel(t *testing.T) { commands: []string{"GET k3", "DEL k3"}, expected: []interface{}{"(nil)", int64(0)}, }, + { + name: "DEL with no keys or arguments", + commands: []string{"DEL"}, + expected: []interface{}{"ERR wrong number of arguments for 'del' command"}, + }, } for _, tc := range testCases { @@ -45,4 +50,4 @@ func TestDel(t *testing.T) { } }) } -} +} \ No newline at end of file