mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-18 02:01:29 +00:00
dep ensure
This commit is contained in:
30
vendor/github.com/hashicorp/go-cleanhttp/README.md
generated
vendored
30
vendor/github.com/hashicorp/go-cleanhttp/README.md
generated
vendored
@@ -1,30 +0,0 @@
|
||||
# cleanhttp
|
||||
|
||||
Functions for accessing "clean" Go http.Client values
|
||||
|
||||
-------------
|
||||
|
||||
The Go standard library contains a default `http.Client` called
|
||||
`http.DefaultClient`. It is a common idiom in Go code to start with
|
||||
`http.DefaultClient` and tweak it as necessary, and in fact, this is
|
||||
encouraged; from the `http` package documentation:
|
||||
|
||||
> The Client's Transport typically has internal state (cached TCP connections),
|
||||
so Clients should be reused instead of created as needed. Clients are safe for
|
||||
concurrent use by multiple goroutines.
|
||||
|
||||
Unfortunately, this is a shared value, and it is not uncommon for libraries to
|
||||
assume that they are free to modify it at will. With enough dependencies, it
|
||||
can be very easy to encounter strange problems and race conditions due to
|
||||
manipulation of this shared value across libraries and goroutines (clients are
|
||||
safe for concurrent use, but writing values to the client struct itself is not
|
||||
protected).
|
||||
|
||||
Making things worse is the fact that a bare `http.Client` will use a default
|
||||
`http.Transport` called `http.DefaultTransport`, which is another global value
|
||||
that behaves the same way. So it is not simply enough to replace
|
||||
`http.DefaultClient` with `&http.Client{}`.
|
||||
|
||||
This repository provides some simple functions to get a "clean" `http.Client`
|
||||
-- one that uses the same default values as the Go standard library, but
|
||||
returns a client that does not share any state with other clients.
|
||||
72
vendor/github.com/hashicorp/go-cleanhttp/handlers_test.go
generated
vendored
72
vendor/github.com/hashicorp/go-cleanhttp/handlers_test.go
generated
vendored
@@ -1,72 +0,0 @@
|
||||
package cleanhttp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPrintablePathCheckHandler(t *testing.T) {
|
||||
getTestHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, "Hello, client")
|
||||
})
|
||||
|
||||
cases := map[string]struct {
|
||||
path string
|
||||
expectCode int
|
||||
input *HandlerInput
|
||||
}{
|
||||
"valid nil input": {
|
||||
path: "/valid",
|
||||
expectCode: http.StatusOK,
|
||||
input: nil,
|
||||
},
|
||||
|
||||
"valid empty error status": {
|
||||
path: "/valid",
|
||||
expectCode: http.StatusOK,
|
||||
input: &HandlerInput{},
|
||||
},
|
||||
|
||||
"invalid newline": {
|
||||
path: "/invalid\n",
|
||||
expectCode: http.StatusBadRequest,
|
||||
},
|
||||
|
||||
"invalid carriage return": {
|
||||
path: "/invalid\r",
|
||||
expectCode: http.StatusBadRequest,
|
||||
},
|
||||
|
||||
"invalid null": {
|
||||
path: "/invalid\x00",
|
||||
expectCode: http.StatusBadRequest,
|
||||
},
|
||||
|
||||
"invalid alternate status": {
|
||||
path: "/invalid\n",
|
||||
expectCode: http.StatusInternalServerError,
|
||||
input: &HandlerInput{
|
||||
ErrStatus: http.StatusInternalServerError,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range cases {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
// Create test HTTP server
|
||||
ts := httptest.NewServer(PrintablePathCheckHandler(getTestHandler, tc.input))
|
||||
defer ts.Close()
|
||||
|
||||
res, err := http.Get(ts.URL + tc.path)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if tc.expectCode != res.StatusCode {
|
||||
t.Fatalf("expected %d, got :%d", tc.expectCode, res.StatusCode)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user