| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package isolatedclient | 5 package isolatedclient |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "bytes" | |
| 9 "io" | 8 "io" |
| 10 "log" | 9 "log" |
| 11 "math/rand" | 10 "math/rand" |
| 12 "net/http" | 11 "net/http" |
| 13 "net/http/httptest" | 12 "net/http/httptest" |
| 14 "sync" | 13 "sync" |
| 15 "testing" | 14 "testing" |
| 16 "time" | 15 "time" |
| 17 | 16 |
| 18 "github.com/luci/luci-go/client/internal/retry" | 17 "github.com/luci/luci-go/client/internal/retry" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 flaky := &killingMux{server: server, tearDown: map[string]int{"/fake/clo
udstorage": 1024}} | 70 flaky := &killingMux{server: server, tearDown: map[string]int{"/fake/clo
udstorage": 1024}} |
| 72 flaky.ts = httptest.NewServer(flaky) | 71 flaky.ts = httptest.NewServer(flaky) |
| 73 defer flaky.ts.Close() | 72 defer flaky.ts.Close() |
| 74 client := newIsolateServer(nil, flaky.ts.URL, "default-gzip", fastRetry) | 73 client := newIsolateServer(nil, flaky.ts.URL, "default-gzip", fastRetry) |
| 75 | 74 |
| 76 digests, contents, expected := makeItems(large) | 75 digests, contents, expected := makeItems(large) |
| 77 states, err := client.Contains(digests) | 76 states, err := client.Contains(digests) |
| 78 ut.AssertEqual(t, nil, err) | 77 ut.AssertEqual(t, nil, err) |
| 79 ut.AssertEqual(t, len(digests), len(states)) | 78 ut.AssertEqual(t, len(digests), len(states)) |
| 80 for _, state := range states { | 79 for _, state := range states { |
| 81 » » err = client.Push(state, bytes.NewReader(contents[state.status.I
ndex])) | 80 » » err = client.Push(state, NewBytesSource(contents[state.status.In
dex])) |
| 82 ut.AssertEqual(t, nil, err) | 81 ut.AssertEqual(t, nil, err) |
| 83 } | 82 } |
| 84 ut.AssertEqual(t, expected, server.Contents()) | 83 ut.AssertEqual(t, expected, server.Contents()) |
| 85 ut.AssertEqual(t, map[string]int{}, flaky.tearDown) | 84 ut.AssertEqual(t, map[string]int{}, flaky.tearDown) |
| 86 | 85 |
| 87 // Look up again to confirm. | 86 // Look up again to confirm. |
| 88 states, err = client.Contains(digests) | 87 states, err = client.Contains(digests) |
| 89 ut.AssertEqual(t, nil, err) | 88 ut.AssertEqual(t, nil, err) |
| 90 ut.AssertEqual(t, len(digests), len(states)) | 89 ut.AssertEqual(t, len(digests), len(states)) |
| 91 for _, state := range states { | 90 for _, state := range states { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 digests, _, expected := makeItems(contents...) | 150 digests, _, expected := makeItems(contents...) |
| 152 server := isolatedfake.New() | 151 server := isolatedfake.New() |
| 153 ts := httptest.NewServer(server) | 152 ts := httptest.NewServer(server) |
| 154 defer ts.Close() | 153 defer ts.Close() |
| 155 client := newIsolateServer(nil, ts.URL, "default-gzip", cantRetry) | 154 client := newIsolateServer(nil, ts.URL, "default-gzip", cantRetry) |
| 156 states, err := client.Contains(digests) | 155 states, err := client.Contains(digests) |
| 157 ut.AssertEqual(t, nil, err) | 156 ut.AssertEqual(t, nil, err) |
| 158 ut.AssertEqual(t, len(digests), len(states)) | 157 ut.AssertEqual(t, len(digests), len(states)) |
| 159 for _, state := range states { | 158 for _, state := range states { |
| 160 // The data is automatically compressed. | 159 // The data is automatically compressed. |
| 161 » » err = client.Push(state, bytes.NewReader(contents[state.status.I
ndex])) | 160 » » err = client.Push(state, NewBytesSource(contents[state.status.In
dex])) |
| 162 ut.AssertEqual(t, nil, err) | 161 ut.AssertEqual(t, nil, err) |
| 163 } | 162 } |
| 164 ut.AssertEqual(t, nil, server.Error()) | 163 ut.AssertEqual(t, nil, server.Error()) |
| 165 ut.AssertEqual(t, expected, server.Contents()) | 164 ut.AssertEqual(t, expected, server.Contents()) |
| 166 states, err = client.Contains(digests) | 165 states, err = client.Contains(digests) |
| 167 ut.AssertEqual(t, nil, err) | 166 ut.AssertEqual(t, nil, err) |
| 168 ut.AssertEqual(t, len(digests), len(states)) | 167 ut.AssertEqual(t, len(digests), len(states)) |
| 169 for _, state := range states { | 168 for _, state := range states { |
| 170 ut.AssertEqual(t, (*PushState)(nil), state) | 169 ut.AssertEqual(t, (*PushState)(nil), state) |
| 171 } | 170 } |
| 172 ut.AssertEqual(t, nil, server.Error()) | 171 ut.AssertEqual(t, nil, server.Error()) |
| 173 } | 172 } |
| 174 | 173 |
| 175 func testFlaky(t *testing.T, flake string) { | 174 func testFlaky(t *testing.T, flake string) { |
| 176 server := isolatedfake.New() | 175 server := isolatedfake.New() |
| 177 flaky := &killingMux{server: server, http503: map[string]int{flake: 10}} | 176 flaky := &killingMux{server: server, http503: map[string]int{flake: 10}} |
| 178 flaky.ts = httptest.NewServer(flaky) | 177 flaky.ts = httptest.NewServer(flaky) |
| 179 defer flaky.ts.Close() | 178 defer flaky.ts.Close() |
| 180 client := newIsolateServer(nil, flaky.ts.URL, "default-gzip", fastRetry) | 179 client := newIsolateServer(nil, flaky.ts.URL, "default-gzip", fastRetry) |
| 181 | 180 |
| 182 digests, contents, expected := makeItems(foo, large) | 181 digests, contents, expected := makeItems(foo, large) |
| 183 states, err := client.Contains(digests) | 182 states, err := client.Contains(digests) |
| 184 ut.AssertEqual(t, nil, err) | 183 ut.AssertEqual(t, nil, err) |
| 185 ut.AssertEqual(t, len(digests), len(states)) | 184 ut.AssertEqual(t, len(digests), len(states)) |
| 186 for _, state := range states { | 185 for _, state := range states { |
| 187 » » err = client.Push(state, bytes.NewReader(contents[state.status.I
ndex])) | 186 » » err = client.Push(state, NewBytesSource(contents[state.status.In
dex])) |
| 188 ut.AssertEqual(t, nil, err) | 187 ut.AssertEqual(t, nil, err) |
| 189 } | 188 } |
| 190 ut.AssertEqual(t, expected, server.Contents()) | 189 ut.AssertEqual(t, expected, server.Contents()) |
| 191 states, err = client.Contains(digests) | 190 states, err = client.Contains(digests) |
| 192 ut.AssertEqual(t, nil, err) | 191 ut.AssertEqual(t, nil, err) |
| 193 ut.AssertEqual(t, len(digests), len(states)) | 192 ut.AssertEqual(t, len(digests), len(states)) |
| 194 for _, state := range states { | 193 for _, state := range states { |
| 195 ut.AssertEqual(t, (*PushState)(nil), state) | 194 ut.AssertEqual(t, (*PushState)(nil), state) |
| 196 } | 195 } |
| 197 ut.AssertEqual(t, nil, server.Error()) | 196 ut.AssertEqual(t, nil, server.Error()) |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 k.ts.CloseClientConnections() | 231 k.ts.CloseClientConnections() |
| 233 return false | 232 return false |
| 234 } | 233 } |
| 235 return true | 234 return true |
| 236 } | 235 } |
| 237 if f() { | 236 if f() { |
| 238 log.Printf("%-4s %s", req.Method, req.URL.Path) | 237 log.Printf("%-4s %s", req.Method, req.URL.Path) |
| 239 k.server.ServeHTTP(w, req) | 238 k.server.ServeHTTP(w, req) |
| 240 } | 239 } |
| 241 } | 240 } |
| OLD | NEW |