Bläddra i källkod

Revert "context: inherits context cancelation and deadline from http.Request context for Go>=1.7 (#1690)" (#1736)

This reverts commit f67d7a90c4d2e5bdf310a78d7e6a04e3d9aee851.
thinkerou 7 år sedan
förälder
incheckning
29a145c85d
4 ändrade filer med 28 tillägg och 118 borttagningar
  1. 28 0
      context.go
  2. 0 30
      context_17.go
  3. 0 49
      context_17_test.go
  4. 0 39
      context_pre17.go

+ 28 - 0
context.go

@@ -942,6 +942,34 @@ func (c *Context) SetAccepted(formats ...string) {
 	c.Accepted = formats
 }
 
+/************************************/
+/***** GOLANG.ORG/X/NET/CONTEXT *****/
+/************************************/
+
+// Deadline returns the time when work done on behalf of this context
+// should be canceled. Deadline returns ok==false when no deadline is
+// set. Successive calls to Deadline return the same results.
+func (c *Context) Deadline() (deadline time.Time, ok bool) {
+	return
+}
+
+// Done returns a channel that's closed when work done on behalf of this
+// context should be canceled. Done may return nil if this context can
+// never be canceled. Successive calls to Done return the same value.
+func (c *Context) Done() <-chan struct{} {
+	return nil
+}
+
+// Err returns a non-nil error value after Done is closed,
+// successive calls to Err return the same error.
+// If Done is not yet closed, Err returns nil.
+// If Done is closed, Err returns a non-nil error explaining why:
+// Canceled if the context was canceled
+// or DeadlineExceeded if the context's deadline passed.
+func (c *Context) Err() error {
+	return nil
+}
+
 // Value returns the value associated with this context for key, or nil
 // if no value is associated with key. Successive calls to Value with
 // the same key returns the same result.

+ 0 - 30
context_17.go

@@ -7,8 +7,6 @@
 package gin
 
 import (
-	"time"
-
 	"github.com/gin-gonic/gin/render"
 )
 
@@ -17,31 +15,3 @@ import (
 func (c *Context) PureJSON(code int, obj interface{}) {
 	c.Render(code, render.PureJSON{Data: obj})
 }
-
-/************************************/
-/***** GOLANG.ORG/X/NET/CONTEXT *****/
-/************************************/
-
-// Deadline returns the time when work done on behalf of this context
-// should be canceled. Deadline returns ok==false when no deadline is
-// set. Successive calls to Deadline return the same results.
-func (c *Context) Deadline() (time.Time, bool) {
-	return c.Request.Context().Deadline()
-}
-
-// Done returns a channel that's closed when work done on behalf of this
-// context should be canceled. Done may return nil if this context can
-// never be canceled. Successive calls to Done return the same value.
-func (c *Context) Done() <-chan struct{} {
-	return c.Request.Context().Done()
-}
-
-// Err returns a non-nil error value after Done is closed,
-// successive calls to Err return the same error.
-// If Done is not yet closed, Err returns nil.
-// If Done is closed, Err returns a non-nil error explaining why:
-// Canceled if the context was canceled
-// or DeadlineExceeded if the context's deadline passed.
-func (c *Context) Err() error {
-	return c.Request.Context().Err()
-}

+ 0 - 49
context_17_test.go

@@ -7,12 +7,9 @@
 package gin
 
 import (
-	"bytes"
-	"context"
 	"net/http"
 	"net/http/httptest"
 	"testing"
-	"time"
 
 	"github.com/stretchr/testify/assert"
 )
@@ -28,49 +25,3 @@ func TestContextRenderPureJSON(t *testing.T) {
 	assert.Equal(t, "{\"foo\":\"bar\",\"html\":\"<b>\"}\n", w.Body.String())
 	assert.Equal(t, "application/json; charset=utf-8", w.Header().Get("Content-Type"))
 }
-
-func TestContextHTTPContext(t *testing.T) {
-	c, _ := CreateTestContext(httptest.NewRecorder())
-	req, _ := http.NewRequest("POST", "/", bytes.NewBufferString("{\"foo\":\"bar\", \"bar\":\"foo\"}"))
-	ctx, cancelFunc := context.WithCancel(context.Background())
-	defer cancelFunc()
-	c.Request = req.WithContext(ctx)
-
-	assert.NoError(t, c.Err())
-	assert.NotNil(t, c.Done())
-	select {
-	case <-c.Done():
-		assert.Fail(t, "context should not be canceled")
-	default:
-	}
-
-	ti, ok := c.Deadline()
-	assert.Equal(t, ti, time.Time{})
-	assert.False(t, ok)
-	assert.Equal(t, c.Value(0), c.Request)
-
-	cancelFunc()
-	assert.NotNil(t, c.Done())
-	select {
-	case <-c.Done():
-	default:
-		assert.Fail(t, "context should be canceled")
-	}
-}
-
-func TestContextHTTPContextWithDeadline(t *testing.T) {
-	c, _ := CreateTestContext(httptest.NewRecorder())
-	req, _ := http.NewRequest("POST", "/", bytes.NewBufferString("{\"foo\":\"bar\", \"bar\":\"foo\"}"))
-	location, _ := time.LoadLocation("Europe/Paris")
-	assert.NotNil(t, location)
-	date := time.Date(2031, 12, 27, 16, 00, 00, 00, location)
-	ctx, cancelFunc := context.WithDeadline(context.Background(), date)
-	defer cancelFunc()
-	c.Request = req.WithContext(ctx)
-
-	assert.NoError(t, c.Err())
-
-	ti, ok := c.Deadline()
-	assert.Equal(t, ti, date)
-	assert.True(t, ok)
-}

+ 0 - 39
context_pre17.go

@@ -1,39 +0,0 @@
-// Copyright 2018 Gin Core Team.  All rights reserved.
-// Use of this source code is governed by a MIT style
-// license that can be found in the LICENSE file.
-
-// +build !go1.7
-
-package gin
-
-import (
-	"time"
-)
-
-/************************************/
-/***** GOLANG.ORG/X/NET/CONTEXT *****/
-/************************************/
-
-// Deadline returns the time when work done on behalf of this context
-// should be canceled. Deadline returns ok==false when no deadline is
-// set. Successive calls to Deadline return the same results.
-func (c *Context) Deadline() (deadline time.Time, ok bool) {
-	return
-}
-
-// Done returns a channel that's closed when work done on behalf of this
-// context should be canceled. Done may return nil if this context can
-// never be canceled. Successive calls to Done return the same value.
-func (c *Context) Done() <-chan struct{} {
-	return nil
-}
-
-// Err returns a non-nil error value after Done is closed,
-// successive calls to Err return the same error.
-// If Done is not yet closed, Err returns nil.
-// If Done is closed, Err returns a non-nil error explaining why:
-// Canceled if the context was canceled
-// or DeadlineExceeded if the context's deadline passed.
-func (c *Context) Err() error {
-	return nil
-}