-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add Shutdown to support graceful quit of HTTP Server #83
Conversation
2. Unify the behavior of Run/RunTLS/RunTLSWithCert. The original RunTLS/RunTLSWithCert did not apply the http.AllowQuerySemicolons and MaxHeaderBytes configuration.
Important Review skippedAuto reviews are limited to specific labels. Labels to auto review (1)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pretty good, especially the test cases, left a few nitpicks, and the CI failed.
route.go
Outdated
return r.server.Shutdown(ctx) | ||
} | ||
if r.tlsServer != nil { | ||
return r.server.Shutdown(ctx) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
return r.server.Shutdown(ctx) | |
return r.tlsServer.Shutdown(ctx) |
mockConfig *configmocks.Config | ||
route *Route | ||
count atomic.Int64 | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In test cases, host
and port
are the same, they can be defined here.
route_test.go
Outdated
mockConfig = &configmocks.Config{} | ||
mockConfig.On("GetBool", "app.debug").Return(true).Once() | ||
mockConfig.On("GetInt", "http.drivers.gin.body_limit", 4096).Return(4096).Once() | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In test cases, mockConfig.*
are the same, they can be added here.
route_test.go
Outdated
for _, test := range tests { | ||
t.Run(test.name, func(t *testing.T) { | ||
mockConfig = &configmocks.Config{} | ||
mockConfig.On("GetBool", "app.debug").Return(true).Once() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mockConfig.On("GetBool", "app.debug").Return(true).Once() | |
mockConfig.EXCEPT().GetBool("app.debug").Return(true).Once() |
} | ||
} | ||
|
||
func assertHttpNormal(t *testing.T, addr string, expectNormal bool) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add StatusCode
and Body
judgments.
@hwbrzzl please review again |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CI still failed, you can run go get github.com/goravel/framework@05476fa00c9c4cb6d49f2615b17f05b1b86af6c5
first, to ensure the CI passes. Then run go get github.com/goravel/framework@v1.14.5
when v1.14.5 is released.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## v1.2.x #83 +/- ##
=========================================
Coverage ? 80.77%
=========================================
Files ? 14
Lines ? 801
Branches ? 0
=========================================
Hits ? 647
Misses ? 120
Partials ? 34 ☔ View full report in Codecov by Sentry. |
This PR is good to go, it can be merged when v1.14.5 is released, I'll do it these two days, you can optimize goravel/fiber first. Thanks a lot 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great PR 👍
* fix: [#455] Session same_site config not working (#71) * add sameSite in cookie * check if sameSite exist in map * feat: add Shutdown to support graceful quit of HTTP Server (#83) * 1. add Shutdown to support graceful quit of HTTP Server 2. Unify the behavior of Run/RunTLS/RunTLSWithCert. The original RunTLS/RunTLSWithCert did not apply the http.AllowQuerySemicolons and MaxHeaderBytes configuration. * compatible with multiple servers * improve unit testing * improve unit testing * improve unit testing --------- Co-authored-by: 朱祥东 <xiangdong.zhu@maitang001.com> * feat: Optmize Shutdown (#84) * feat: Optmize Shutdown * fix test cases * update go.mod --------- Co-authored-by: krishan kumar <84431594+kkumar-gcc@users.noreply.github.com> Co-authored-by: zxdstyle <1430822515@qq.com> Co-authored-by: 朱祥东 <xiangdong.zhu@maitang001.com>
* fix: [#455] Session same_site config not working (#71) * add sameSite in cookie * check if sameSite exist in map * feat: add Shutdown to support graceful quit of HTTP Server (#83) * 1. add Shutdown to support graceful quit of HTTP Server 2. Unify the behavior of Run/RunTLS/RunTLSWithCert. The original RunTLS/RunTLSWithCert did not apply the http.AllowQuerySemicolons and MaxHeaderBytes configuration. * compatible with multiple servers * improve unit testing * improve unit testing * improve unit testing --------- Co-authored-by: 朱祥东 <xiangdong.zhu@maitang001.com> * feat: Optmize Shutdown (#84) * feat: Optmize Shutdown * fix test cases * refactor: change `WithValue` key type to any (#88) * bump version goravel framework * ref: use any as the key type for WithValue * test: more test cases for WithValue and Context * test: swap the expected and actual value in assertion * fix: need to store the key-val to underlying gin too * test: remove type assert * ref: immediately use `context.Context` as field ctx instead * feat: helper to get goravel data from gin context * ref: use helper to get goravel data from gin context instead * test: add custom key to `WithValue` in group_test * ref: remove the unnecessary ctx of `context.Context` * upgrade: v1.2.5 (#89) --------- Co-authored-by: krishan kumar <84431594+kkumar-gcc@users.noreply.github.com> Co-authored-by: zxdstyle <1430822515@qq.com> Co-authored-by: 朱祥东 <xiangdong.zhu@maitang001.com> Co-authored-by: Danial <48054961+mdanialr@users.noreply.github.com>
fix: Unify the behavior of Run/RunTLS/RunTLSWithCert. The original RunTLS/RunTLSWithCert did not apply the http.AllowQuerySemicolons and MaxHeaderBytes configuration.
📑 Description
Closes https://github.com/goravel/goravel/issues/?
@coderabbitai summary
✅ Checks