...

Source file src/github.com/go-kivik/kivik/v4/mockdb/context_test.go

Documentation: github.com/go-kivik/kivik/v4/mockdb

     1  // Licensed under the Apache License, Version 2.0 (the "License"); you may not
     2  // use this file except in compliance with the License. You may obtain a copy of
     3  // the License at
     4  //
     5  //  http://www.apache.org/licenses/LICENSE-2.0
     6  //
     7  // Unless required by applicable law or agreed to in writing, software
     8  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     9  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    10  // License for the specific language governing permissions and limitations under
    11  // the License.
    12  
    13  package mockdb
    14  
    15  import (
    16  	"context"
    17  	"time"
    18  )
    19  
    20  var startime = time.Now()
    21  
    22  // canceledContext is immediately canceled
    23  type canceledContext struct {
    24  	ch <-chan struct{}
    25  }
    26  
    27  var _ context.Context = &canceledContext{}
    28  
    29  func newCanceledContext() context.Context {
    30  	ch := make(chan struct{})
    31  	close(ch)
    32  	return &canceledContext{ch}
    33  }
    34  
    35  func (c *canceledContext) Deadline() (time.Time, bool) {
    36  	return startime, true
    37  }
    38  
    39  func (c *canceledContext) Done() <-chan struct{} {
    40  	return c.ch
    41  }
    42  
    43  func (c *canceledContext) Err() error { return context.Canceled }
    44  
    45  func (c *canceledContext) Value(_ interface{}) interface{} { return nil }
    46  

View as plain text