diff --git a/integrationtests/self/go119_test.go b/integrationtests/self/go119_test.go deleted file mode 100644 index c676693d..00000000 --- a/integrationtests/self/go119_test.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build go1.19 && !go1.20 - -package self_test - -import ( - "errors" - "net/http" - "time" -) - -const go120 = false - -var errNotSupported = errors.New("not supported") - -func setReadDeadline(w http.ResponseWriter, deadline time.Time) error { - return errNotSupported -} - -func setWriteDeadline(w http.ResponseWriter, deadline time.Time) error { - return errNotSupported -} diff --git a/integrationtests/self/go120_test.go b/integrationtests/self/go120_test.go deleted file mode 100644 index 88eb4a7e..00000000 --- a/integrationtests/self/go120_test.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build go1.20 - -package self_test - -import ( - "net/http" - "time" -) - -const go120 = true - -func setReadDeadline(w http.ResponseWriter, deadline time.Time) error { - rc := http.NewResponseController(w) - - return rc.SetReadDeadline(deadline) -} - -func setWriteDeadline(w http.ResponseWriter, deadline time.Time) error { - rc := http.NewResponseController(w) - - return rc.SetWriteDeadline(deadline) -} diff --git a/integrationtests/self/http_test.go b/integrationtests/self/http_test.go index ac16ffa5..a7a20ad2 100644 --- a/integrationtests/self/http_test.go +++ b/integrationtests/self/http_test.go @@ -432,55 +432,53 @@ var _ = Describe("HTTP tests", func() { Eventually(done).Should(BeClosed()) }) - if go120 { - It("supports read deadlines", func() { - mux.HandleFunc("/read-deadline", func(w http.ResponseWriter, r *http.Request) { - defer GinkgoRecover() - err := setReadDeadline(w, time.Now().Add(deadlineDelay)) - Expect(err).ToNot(HaveOccurred()) + It("supports read deadlines", func() { + mux.HandleFunc("/read-deadline", func(w http.ResponseWriter, r *http.Request) { + defer GinkgoRecover() + rc := http.NewResponseController(w) + Expect(rc.SetReadDeadline(time.Now().Add(deadlineDelay))).To(Succeed()) - body, err := io.ReadAll(r.Body) - Expect(err).To(MatchError(os.ErrDeadlineExceeded)) - Expect(body).To(ContainSubstring("aa")) + body, err := io.ReadAll(r.Body) + Expect(err).To(MatchError(os.ErrDeadlineExceeded)) + Expect(body).To(ContainSubstring("aa")) - w.Write([]byte("ok")) - }) - - expectedEnd := time.Now().Add(deadlineDelay) - resp, err := client.Post( - fmt.Sprintf("https://localhost:%d/read-deadline", port), - "text/plain", - neverEnding('a'), - ) - Expect(err).ToNot(HaveOccurred()) - Expect(resp.StatusCode).To(Equal(200)) - - body, err := io.ReadAll(gbytes.TimeoutReader(resp.Body, 2*deadlineDelay)) - Expect(err).ToNot(HaveOccurred()) - Expect(time.Now().After(expectedEnd)).To(BeTrue()) - Expect(string(body)).To(Equal("ok")) + w.Write([]byte("ok")) }) - It("supports write deadlines", func() { - mux.HandleFunc("/write-deadline", func(w http.ResponseWriter, r *http.Request) { - defer GinkgoRecover() - err := setWriteDeadline(w, time.Now().Add(deadlineDelay)) - Expect(err).ToNot(HaveOccurred()) + expectedEnd := time.Now().Add(deadlineDelay) + resp, err := client.Post( + fmt.Sprintf("https://localhost:%d/read-deadline", port), + "text/plain", + neverEnding('a'), + ) + Expect(err).ToNot(HaveOccurred()) + Expect(resp.StatusCode).To(Equal(200)) - _, err = io.Copy(w, neverEnding('a')) - Expect(err).To(MatchError(os.ErrDeadlineExceeded)) - }) + body, err := io.ReadAll(gbytes.TimeoutReader(resp.Body, 2*deadlineDelay)) + Expect(err).ToNot(HaveOccurred()) + Expect(time.Now().After(expectedEnd)).To(BeTrue()) + Expect(string(body)).To(Equal("ok")) + }) - expectedEnd := time.Now().Add(deadlineDelay) + It("supports write deadlines", func() { + mux.HandleFunc("/write-deadline", func(w http.ResponseWriter, r *http.Request) { + defer GinkgoRecover() + rc := http.NewResponseController(w) + Expect(rc.SetWriteDeadline(time.Now().Add(deadlineDelay))).To(Succeed()) - resp, err := client.Get(fmt.Sprintf("https://localhost:%d/write-deadline", port)) - Expect(err).ToNot(HaveOccurred()) - Expect(resp.StatusCode).To(Equal(200)) - - body, err := io.ReadAll(gbytes.TimeoutReader(resp.Body, 2*deadlineDelay)) - Expect(err).ToNot(HaveOccurred()) - Expect(time.Now().After(expectedEnd)).To(BeTrue()) - Expect(string(body)).To(ContainSubstring("aa")) + _, err := io.Copy(w, neverEnding('a')) + Expect(err).To(MatchError(os.ErrDeadlineExceeded)) }) - } + + expectedEnd := time.Now().Add(deadlineDelay) + + resp, err := client.Get(fmt.Sprintf("https://localhost:%d/write-deadline", port)) + Expect(err).ToNot(HaveOccurred()) + Expect(resp.StatusCode).To(Equal(200)) + + body, err := io.ReadAll(gbytes.TimeoutReader(resp.Body, 2*deadlineDelay)) + Expect(err).ToNot(HaveOccurred()) + Expect(time.Now().After(expectedEnd)).To(BeTrue()) + Expect(string(body)).To(ContainSubstring("aa")) + }) })