Skip to content

Improve performance, migrate tests to testify, expand test coverage#22

Merged
sergeyfast merged 3 commits intomasterfrom
performance-review
Mar 19, 2026
Merged

Improve performance, migrate tests to testify, expand test coverage#22
sergeyfast merged 3 commits intomasterfrom
performance-review

Conversation

@sergeyfast
Copy link
Copy Markdown

  • Server hot-path optimization: fast path for single requests without wrapping into an array, replaced unicode.IsSpace with direct byte comparison in IsArray, replaced strings.SplitN with strings.Cut, optimized ConvertToObject with pre-allocated buffer
  • PackageInfo.String() optimization: replaced string concatenation with strings.Builder
  • Test framework migration from goconvey to testify: replaced github.com/smartystreets/goconvey with github.com/stretchr/testify (assert/require) across all test files
  • Expanded test coverage: added unit tests for JSON-RPC 2.0 spec compliance (ID formats, version validation, batch/params edge cases), response structure tests, concurrency tests, context function tests, Error/Response API tests
  • Added benchmarks: IsArray, ConvertToObject, Do() (single/batch/notification/error), ServeHTTP (sequential/parallel), middleware overhead
  • Makefile: added -race flag to test target, added bench target
  • README: fixed code examples (pointer receivers, removed dependency on testdata package)

- Server hot-path optimization: fast path for single requests without wrapping into an array, replaced unicode.IsSpace with direct byte comparison in IsArray, replaced strings.SplitN with strings.Cut, optimized ConvertToObject with pre-allocated buffer
- PackageInfo.String() optimization: replaced string concatenation with strings.Builder
- Test framework migration from goconvey to testify: replaced github.com/smartystreets/goconvey with github.com/stretchr/testify (assert/require) across all test files
- Expanded test coverage: added unit tests for JSON-RPC 2.0 spec compliance (ID formats, version validation, batch/params edge cases), response structure tests, concurrency tests, context function tests, Error/Response API tests
- Added benchmarks: IsArray, ConvertToObject, Do() (single/batch/notification/error), ServeHTTP (sequential/parallel), middleware overhead
- Makefile: added -race flag to test target, added bench target
- README: fixed code examples (pointer receivers, removed dependency on testdata package)
@sergeyfast sergeyfast merged commit 2fe4037 into master Mar 19, 2026
2 checks passed
@sergeyfast sergeyfast deleted the performance-review branch March 19, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant