From 8dd7d4618fe604a03ef7b31a471967c02b61c18e Mon Sep 17 00:00:00 2001 From: Rafael Holanda Date: Wed, 7 Sep 2022 16:47:20 -0300 Subject: [PATCH 1/3] Validate an error avoiding returning any result with err --- samples/aloc.go | 14 +++++++++----- samples/aloc_test.go | 7 +++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/samples/aloc.go b/samples/aloc.go index ef43286..1ef791e 100644 --- a/samples/aloc.go +++ b/samples/aloc.go @@ -1,18 +1,22 @@ package samples -import "fmt" - func Aloc[O any, T []O](obj O, times int) (result T) { for i := 0; i <= times; i++ { result = append(result, obj) } - values := make([]any, 0) for _, o := range result { - values = append(values, fmt.Sprintf("%+v\n", o)) + if isError(o) { + result = nil + return + } } - fmt.Println(values...) return } + +func isError(o any) bool { + _, ok := o.(error) + return ok +} diff --git a/samples/aloc_test.go b/samples/aloc_test.go index 3dac0ce..0e468c0 100644 --- a/samples/aloc_test.go +++ b/samples/aloc_test.go @@ -2,6 +2,7 @@ package samples_test import ( "testing" + "errors" "github.com/rafaelhl/profiling-samples/samples" "github.com/stretchr/testify/assert" @@ -12,3 +13,9 @@ func TestAloc(t *testing.T) { assert.Len(t, result, 11) } + +func TestAlocError(t *testing.T) { + result := samples.Aloc(errors.New("test"), 10) + + assert.Len(t, result, 0) +} From f203ae15cde317b5224badcfb70140793696518b Mon Sep 17 00:00:00 2001 From: Rafael Holanda Date: Wed, 7 Sep 2022 17:01:14 -0300 Subject: [PATCH 2/3] Improve result generation --- main.go | 2 +- samples/aloc.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 9ac4ab6..f4296ff 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ package main import ( - "encoding/json" + "github.com/goccy/go-json" "log" "net/http" _ "net/http/pprof" diff --git a/samples/aloc.go b/samples/aloc.go index 1ef791e..78a474a 100644 --- a/samples/aloc.go +++ b/samples/aloc.go @@ -2,8 +2,9 @@ package samples func Aloc[O any, T []O](obj O, times int) (result T) { + result = make(T, times+1) for i := 0; i <= times; i++ { - result = append(result, obj) + result[i] = obj } for _, o := range result { From 3b53adb3986edf798607d591e64e13e84f35fb5b Mon Sep 17 00:00:00 2001 From: Rafael Holanda Date: Wed, 7 Sep 2022 17:13:08 -0300 Subject: [PATCH 3/3] Add profile result applying these changes --- profile005.pb.gz | Bin 0 -> 3546 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 profile005.pb.gz diff --git a/profile005.pb.gz b/profile005.pb.gz new file mode 100644 index 0000000000000000000000000000000000000000..054b62dd2b20b5be9790e08bcea72b50fb88b371 GIT binary patch literal 3546 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 UkonC22LJ&7|7F5vQ