From 0f10ffec13a1eecb2b18e0b9d75773faf42e7ebd Mon Sep 17 00:00:00 2001 From: apocelipes Date: Thu, 4 Apr 2024 06:59:50 +0000 Subject: [PATCH] expvar: add the missing deletion step for keys In CL575777 I forgot to remove the key from the "sync.Map". This did not cause the test to fail due to the lack of an associated testcase. Now delete the key correctly and add the testcase. Change-Id: I26f770966a828caa02f1766675756b67894dc195 GitHub-Last-Rev: a351ce095b5256fd1351d71f09ba38fdcdfce3d9 GitHub-Pull-Request: golang/go#66675 Reviewed-on: https://go-review.googlesource.com/c/go/+/576395 Auto-Submit: Keith Randall Reviewed-by: qiu laidongfeng2 <2645477756@qq.com> Reviewed-by: Dmitri Shuralyov Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall --- src/expvar/expvar.go | 1 + src/expvar/expvar_test.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/expvar/expvar.go b/src/expvar/expvar.go index a30963c5a8..ffe35d62f9 100644 --- a/src/expvar/expvar.go +++ b/src/expvar/expvar.go @@ -249,6 +249,7 @@ func (v *Map) Delete(key string) { i, found := slices.BinarySearch(v.keys, key) if found { v.keys = slices.Delete(v.keys, i, i+1) + v.m.Delete(key) } } diff --git a/src/expvar/expvar_test.go b/src/expvar/expvar_test.go index b827c4d621..def8417953 100644 --- a/src/expvar/expvar_test.go +++ b/src/expvar/expvar_test.go @@ -199,6 +199,9 @@ func TestMapDelete(t *testing.T) { } colors.Delete("red") + if v := colors.Get("red"); v != nil { + t.Errorf("removed red, Get should return nil; got %v", v) + } n = 0 colors.Do(func(KeyValue) { n++ }) if n != 1 { @@ -214,6 +217,9 @@ func TestMapDelete(t *testing.T) { colors.Delete("blue") colors.Delete("blue") + if v := colors.Get("blue"); v != nil { + t.Errorf("removed blue, Get should return nil; got %v", v) + } n = 0 colors.Do(func(KeyValue) { n++ }) if n != 0 { -- 2.48.1