diff --git a/args.go b/args.go index b3ad7e0..d1e57cf 100644 --- a/args.go +++ b/args.go @@ -391,6 +391,7 @@ func delAllArgs(args []argsKV, key string) []argsKV { tmp := *kv copy(args[i:], args[i+1:]) n-- + i-- args[n] = tmp args = args[:n] } diff --git a/args_test.go b/args_test.go index f6c62ae..b2e1954 100644 --- a/args_test.go +++ b/args_test.go @@ -583,3 +583,17 @@ func testArgsParse(t *testing.T, a *Args, s string, expectedLen int, expectedArg } } } + +func TestArgsDeleteAll(t *testing.T) { + t.Parallel() + var a Args + a.Add("q1", "foo") + a.Add("q1", "bar") + a.Add("q1", "baz") + a.Add("q1", "quux") + a.Add("q2", "1234") + a.Del("q1") + if a.Len() != 1 || a.Has("q1") { + t.Fatalf("Expected q1 arg to be completely deleted. Current Args: %s", a.String()) + } +} \ No newline at end of file