本文整理汇总了Golang中github.com/coreos/flannel/Godeps/_workspace/src/golang.org/x/net/context.Background函数的典型用法代码示例。如果您正苦于以下问题:Golang Background函数的具体用法?Golang Background怎么用?Golang Background使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Background函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestConfigChanged
func TestConfigChanged(t *testing.T) {
msr := newDummyRegistry(1000)
sm := newEtcdManager(msr)
extIaddr, _ := ip.ParseIP4("1.2.3.4")
attrs := LeaseAttrs{
PublicIP: extIaddr,
}
l, err := sm.AcquireLease(context.Background(), "", &attrs)
if err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if l.Subnet.String() != "10.3.3.0/24" {
t.Fatal("Subnet mismatch: expected 10.3.3.0/24, got: ", l.Subnet)
}
// Change config
config := `{ "Network": "10.4.0.0/16" }`
msr.setConfig(config)
// Acquire again, should not reuse
if l, err = sm.AcquireLease(context.Background(), "", &attrs); err != nil {
t.Fatal("AcquireLease failed: ", err)
}
newNet := newIP4Net("10.4.0.0", 16)
if !newNet.Contains(l.Subnet.IP) {
t.Fatalf("Subnet mismatch: expected within %v, got: %v", newNet, l.Subnet)
}
}
示例2: TestAcquireLease
func TestAcquireLease(t *testing.T) {
msr := newDummyRegistry()
sm := NewMockManager(msr)
extIaddr, _ := ip.ParseIP4("1.2.3.4")
attrs := LeaseAttrs{
PublicIP: extIaddr,
}
l, err := sm.AcquireLease(context.Background(), "_", &attrs)
if err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if !inAllocatableRange(context.Background(), sm, l.Subnet) {
t.Fatal("Subnet mismatch: expected 10.3.3.0/24, got: ", l.Subnet)
}
// Acquire again, should reuse
l2, err := sm.AcquireLease(context.Background(), "_", &attrs)
if err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if !l.Subnet.Equal(l2.Subnet) {
t.Fatalf("AcquireLease did not reuse subnet; expected %v, got %v", l.Subnet, l2.Subnet)
}
}
示例3: TestAcquireLease
func TestAcquireLease(t *testing.T) {
msr := newDummyRegistry(1000)
sm := newEtcdManager(msr)
extIaddr, _ := ip.ParseIP4("1.2.3.4")
attrs := LeaseAttrs{
PublicIP: extIaddr,
}
l, err := sm.AcquireLease(context.Background(), "", &attrs)
if err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if l.Subnet.String() != "10.3.3.0/24" {
t.Fatal("Subnet mismatch: expected 10.3.3.0/24, got: ", l.Subnet)
}
// Acquire again, should reuse
if l, err = sm.AcquireLease(context.Background(), "", &attrs); err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if l.Subnet.String() != "10.3.3.0/24" {
t.Fatal("Subnet mismatch: expected 10.3.3.0/24, got: ", l.Subnet)
}
}
示例4: TestConfigChanged
func TestConfigChanged(t *testing.T) {
msr := newDummyRegistry()
sm := NewMockManager(msr)
extIaddr, _ := ip.ParseIP4("1.2.3.4")
attrs := LeaseAttrs{
PublicIP: extIaddr,
}
l, err := sm.AcquireLease(context.Background(), "_", &attrs)
if err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if !inAllocatableRange(context.Background(), sm, l.Subnet) {
t.Fatal("Acquired subnet outside of valid range: ", l.Subnet)
}
// Change config
config := `{ "Network": "10.4.0.0/16" }`
msr.setConfig("_", config)
// Acquire again, should not reuse
if l, err = sm.AcquireLease(context.Background(), "_", &attrs); err != nil {
t.Fatal("AcquireLease failed: ", err)
}
if !inAllocatableRange(context.Background(), sm, l.Subnet) {
t.Fatal("Acquired subnet outside of valid range: ", l.Subnet)
}
}
示例5: TestHTTPKeysAPIDeleteResponse
func TestHTTPKeysAPIDeleteResponse(t *testing.T) {
client := &staticHTTPClient{
resp: http.Response{
StatusCode: http.StatusOK,
Header: http.Header{"X-Etcd-Index": []string{"22"}},
},
body: []byte(`{"action":"delete","node":{"key":"/pants/foo/bar/baz","value":"snarf","modifiedIndex":22,"createdIndex":19},"prevNode":{"key":"/pants/foo/bar/baz","value":"snazz","modifiedIndex":20,"createdIndex":19}}`),
}
wantResponse := &Response{
Action: "delete",
Node: &Node{Key: "/pants/foo/bar/baz", Value: "snarf", CreatedIndex: uint64(19), ModifiedIndex: uint64(22)},
PrevNode: &Node{Key: "/pants/foo/bar/baz", Value: "snazz", CreatedIndex: uint64(19), ModifiedIndex: uint64(20)},
Index: uint64(22),
}
kAPI := &httpKeysAPI{client: client, prefix: "/pants"}
resp, err := kAPI.Delete(context.Background(), "/foo/bar/baz", nil)
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
if !reflect.DeepEqual(wantResponse, resp) {
t.Errorf("incorrect Response: want=%#v got=%#v", wantResponse, resp)
}
}
示例6: TestHTTPKeysAPIDeleteError
func TestHTTPKeysAPIDeleteError(t *testing.T) {
tests := []httpClient{
// generic HTTP client failure
&staticHTTPClient{
err: errors.New("fail!"),
},
// unusable status code
&staticHTTPClient{
resp: http.Response{
StatusCode: http.StatusTeapot,
},
},
// etcd Error response
&staticHTTPClient{
resp: http.Response{
StatusCode: http.StatusInternalServerError,
},
body: []byte(`{"errorCode":300,"message":"Raft internal error","cause":"/foo","index":18}`),
},
}
for i, tt := range tests {
kAPI := httpKeysAPI{client: tt}
resp, err := kAPI.Delete(context.Background(), "/foo", nil)
if err == nil {
t.Errorf("#%d: received nil error", i)
}
if resp != nil {
t.Errorf("#%d: received non-nil Response: %#v", i, resp)
}
}
}
示例7: TestHTTPClusterClientDoDeadlineExceedContext
func TestHTTPClusterClientDoDeadlineExceedContext(t *testing.T) {
fakeURL := url.URL{}
tr := newFakeTransport()
tr.finishCancel <- struct{}{}
c := &httpClusterClient{
clientFactory: newHTTPClientFactory(tr, DefaultCheckRedirect, 0),
endpoints: []url.URL{fakeURL},
}
errc := make(chan error)
go func() {
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond)
defer cancel()
_, _, err := c.Do(ctx, &fakeAction{})
errc <- err
}()
select {
case err := <-errc:
if err != context.DeadlineExceeded {
t.Errorf("err = %+v, want %+v", err, context.DeadlineExceeded)
}
case <-time.After(time.Second):
t.Fatalf("unexpected timeout when waitting for request to deadline exceed")
}
}
示例8: TestSimpleHTTPClientDoCancelContextResponseBodyClosed
func TestSimpleHTTPClientDoCancelContextResponseBodyClosed(t *testing.T) {
tr := newFakeTransport()
c := &simpleHTTPClient{transport: tr}
// create an already-cancelled context
ctx, cancel := context.WithCancel(context.Background())
cancel()
body := &checkableReadCloser{ReadCloser: ioutil.NopCloser(strings.NewReader("foo"))}
go func() {
// wait that simpleHTTPClient knows the context is already timed out,
// and calls CancelRequest
testutil.WaitSchedule()
// response is returned before cancel effects
tr.respchan <- &http.Response{Body: body}
}()
_, _, err := c.Do(ctx, &fakeAction{})
if err == nil {
t.Fatalf("expected non-nil error, got nil")
}
if !body.closed {
t.Fatalf("expected closed body")
}
}
示例9: TestWatchGetNetworks
func TestWatchGetNetworks(t *testing.T) {
msr := newDummyRegistry()
sm := NewMockManager(msr)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// Kill the previously added "_" network
msr.DeleteNetwork(ctx, "_")
expected := "foobar"
msr.CreateNetwork(ctx, expected, `{"Network": "10.1.1.0/16", "Backend": {"Type": "bridge"}}`)
resp, err := sm.WatchNetworks(ctx, nil)
if err != nil {
t.Errorf("WatchNetworks(nil) failed:", err)
}
if len(resp.Snapshot) != 1 {
t.Errorf("WatchNetworks(nil) produced wrong number of networks: expected 1, got %d", len(resp.Snapshot))
}
if resp.Snapshot[0] != expected {
t.Errorf("WatchNetworks(nil) produced wrong network: expected %s, got %s", expected, resp.Snapshot[0])
}
}
示例10: TestWatchNetworkAdded
func TestWatchNetworkAdded(t *testing.T) {
msr := newDummyRegistry()
sm := NewMockManager(msr)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
events := make(chan []Event)
go WatchNetworks(ctx, sm, events)
// skip over the initial snapshot
<-events
expected := "foobar"
msr.CreateNetwork(ctx, expected, `{"Network": "10.1.1.0/16", "Backend": {"Type": "bridge"}}`)
evtBatch := <-events
if len(evtBatch) != 1 {
t.Fatalf("WatchNetworks produced wrong sized event batch")
}
evt := evtBatch[0]
if evt.Type != EventAdded {
t.Fatalf("WatchNetworks produced wrong event type")
}
actual := evt.Network
if actual != expected {
t.Errorf("WatchNetworks produced wrong network: expected %s, got %s", expected, actual)
}
}
示例11: doTestWatchNetworks
func doTestWatchNetworks(t *testing.T, sm subnet.Manager, serverRegistry *subnet.MockSubnetRegistry) {
ctx, cancel := context.WithCancel(context.Background())
wg := sync.WaitGroup{}
wg.Add(1)
defer func() {
cancel()
wg.Wait()
}()
events := make(chan []subnet.Event)
go func() {
subnet.WatchNetworks(ctx, sm, events)
wg.Done()
}()
// skip over the initial snapshot
<-events
expectedNetname := "foobar"
config := fmt.Sprintf(`{"Network": %q}`, expectedNetwork)
err := serverRegistry.CreateNetwork(ctx, expectedNetname, config)
if err != nil {
t.Errorf("create network failed: %v", err)
}
evtBatch := <-events
if len(evtBatch) != 1 {
t.Fatalf("WatchNetworks create produced wrong sized event batch")
}
evt := evtBatch[0]
if evt.Type != subnet.EventAdded {
t.Fatalf("WatchNetworks create produced wrong event type")
}
if evt.Network != expectedNetname {
t.Errorf("WatchNetwork create produced wrong network: expected %s, got %s", expectedNetname, evt.Network)
}
err = serverRegistry.DeleteNetwork(ctx, expectedNetname)
if err != nil {
t.Errorf("delete network failed: %v", err)
}
evtBatch = <-events
if len(evtBatch) != 1 {
t.Fatalf("WatchNetworks delete produced wrong sized event batch")
}
evt = evtBatch[0]
if evt.Type != subnet.EventRemoved {
t.Fatalf("WatchNetworks delete produced wrong event type")
}
if evt.Network != expectedNetname {
t.Errorf("WatchNetwork delete produced wrong network: expected %s, got %s", expectedNetname, evt.Network)
}
}
示例12: TestRemoveReservation
func TestRemoveReservation(t *testing.T) {
msr := newDummyRegistry()
sm := NewMockManager(msr)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
r := Reservation{
Subnet: newIP4Net("10.3.10.0", 24),
PublicIP: ip.MustParseIP4("52.195.12.13"),
}
if err := sm.AddReservation(ctx, "_", &r); err != nil {
t.Fatalf("failed to add reservation: %v", err)
}
if err := sm.RemoveReservation(ctx, "_", r.Subnet); err != nil {
t.Fatalf("failed to remove reservation: %v", err)
}
// The node should have a TTL
sub, _, err := msr.getSubnet(ctx, "_", r.Subnet)
if err != nil {
t.Fatalf("getSubnet failed: %v", err)
}
if sub.Expiration.IsZero() {
t.Fatalf("removed reservation resulted in no TTL")
}
}
示例13: TestHTTPKeysAPIGetResponse
func TestHTTPKeysAPIGetResponse(t *testing.T) {
client := &staticHTTPClient{
resp: http.Response{
StatusCode: http.StatusOK,
Header: http.Header{"X-Etcd-Index": []string{"42"}},
},
body: []byte(`{"action":"get","node":{"key":"/pants/foo/bar","modifiedIndex":25,"createdIndex":19,"nodes":[{"key":"/pants/foo/bar/baz","value":"snarf","createdIndex":21,"modifiedIndex":25}]}}`),
}
wantResponse := &Response{
Action: "get",
Node: &Node{
Key: "/pants/foo/bar",
Nodes: []*Node{
&Node{Key: "/pants/foo/bar/baz", Value: "snarf", CreatedIndex: 21, ModifiedIndex: 25},
},
CreatedIndex: uint64(19),
ModifiedIndex: uint64(25),
},
Index: uint64(42),
}
kAPI := &httpKeysAPI{client: client, prefix: "/pants"}
resp, err := kAPI.Get(context.Background(), "/foo/bar", &GetOptions{Recursive: true})
if err != nil {
t.Errorf("non-nil error: %#v", err)
}
if !reflect.DeepEqual(wantResponse, resp) {
t.Errorf("incorrect Response: want=%#v got=%#v", wantResponse, resp)
}
}
示例14: TestHTTPMembersAPIListSuccess
func TestHTTPMembersAPIListSuccess(t *testing.T) {
wantAction := &membersAPIActionList{}
mAPI := &httpMembersAPI{
client: &actionAssertingHTTPClient{
t: t,
act: wantAction,
resp: http.Response{
StatusCode: http.StatusOK,
},
body: []byte(`{"members":[{"id":"94088180e21eb87b","name":"node2","peerURLs":["http://127.0.0.1:7002"],"clientURLs":["http://127.0.0.1:4002"]}]}`),
},
}
wantResponseMembers := []Member{
Member{
ID: "94088180e21eb87b",
Name: "node2",
PeerURLs: []string{"http://127.0.0.1:7002"},
ClientURLs: []string{"http://127.0.0.1:4002"},
},
}
m, err := mAPI.List(context.Background())
if err != nil {
t.Errorf("got non-nil err: %#v", err)
}
if !reflect.DeepEqual(wantResponseMembers, m) {
t.Errorf("incorrect Members: want=%#v got=%#v", wantResponseMembers, m)
}
}
示例15: TestHTTPMembersAPIListError
func TestHTTPMembersAPIListError(t *testing.T) {
tests := []httpClient{
// generic httpClient failure
&staticHTTPClient{err: errors.New("fail!")},
// unrecognized HTTP status code
&staticHTTPClient{
resp: http.Response{StatusCode: http.StatusTeapot},
},
// fail to unmarshal body on StatusOK
&staticHTTPClient{
resp: http.Response{
StatusCode: http.StatusOK,
},
body: []byte(`[{"id":"XX`),
},
}
for i, tt := range tests {
mAPI := &httpMembersAPI{client: tt}
ms, err := mAPI.List(context.Background())
if err == nil {
t.Errorf("#%d: got nil err", i)
}
if ms != nil {
t.Errorf("#%d: got non-nil Member slice", i)
}
}
}