projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
14738: Enhances code readability when concatenating strings.
[arvados.git]
/
services
/
keepstore
/
azure_blob_volume_test.go
diff --git
a/services/keepstore/azure_blob_volume_test.go
b/services/keepstore/azure_blob_volume_test.go
index 60a7911768f009ef6209292d6c1e04b6cccbe6e7..85d0a1eea4ee7136668debc0fcbbdcd86aed30a5 100644
(file)
--- a/
services/keepstore/azure_blob_volume_test.go
+++ b/
services/keepstore/azure_blob_volume_test.go
@@
-18,6
+18,7
@@
import (
"net"
"net/http"
"net/http/httptest"
"net"
"net/http"
"net/http/httptest"
+ "os"
"regexp"
"sort"
"strconv"
"regexp"
"sort"
"strconv"
@@
-40,7
+41,10
@@
const (
fakeAccountKey = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
)
fakeAccountKey = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
)
-var azureTestContainer string
+var (
+ azureTestContainer string
+ azureTestDebug = os.Getenv("ARVADOS_DEBUG") != ""
+)
func init() {
flag.StringVar(
func init() {
flag.StringVar(
@@
-109,7
+113,9
@@
var rangeRegexp = regexp.MustCompile(`^bytes=(\d+)-(\d+)$`)
func (h *azStubHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
h.Lock()
defer h.Unlock()
func (h *azStubHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
h.Lock()
defer h.Unlock()
- // defer log.Printf("azStubHandler: %+v", r)
+ if azureTestDebug {
+ defer log.Printf("azStubHandler: %+v", r)
+ }
path := strings.Split(r.URL.Path, "/")
container := path[1]
path := strings.Split(r.URL.Path, "/")
container := path[1]
@@
-340,7
+346,9
@@
var localHostPortRe = regexp.MustCompile(`(127\.0\.0\.1|localhost|\[::1\]):\d+`)
func (d *azStubDialer) Dial(network, address string) (net.Conn, error) {
if hp := localHostPortRe.FindString(address); hp != "" {
func (d *azStubDialer) Dial(network, address string) (net.Conn, error) {
if hp := localHostPortRe.FindString(address); hp != "" {
- log.Println("azStubDialer: dial", hp, "instead of", address)
+ if azureTestDebug {
+ log.Println("azStubDialer: dial", hp, "instead of", address)
+ }
address = hp
}
return d.Dialer.Dial(network, address)
address = hp
}
return d.Dialer.Dial(network, address)
@@
-536,9
+544,13
@@
func TestAzureBlobVolumeCreateBlobRace(t *testing.T) {
azureWriteRaceInterval = time.Second
azureWriteRacePollTime = time.Millisecond
azureWriteRaceInterval = time.Second
azureWriteRacePollTime = time.Millisecond
- allDone := make(chan struct{})
+ var wg sync.WaitGroup
+
v.azHandler.race = make(chan chan struct{})
v.azHandler.race = make(chan chan struct{})
+
+ wg.Add(1)
go func() {
go func() {
+ defer wg.Done()
err := v.Put(context.Background(), TestHash, TestBlock)
if err != nil {
t.Error(err)
err := v.Put(context.Background(), TestHash, TestBlock)
if err != nil {
t.Error(err)
@@
-547,21
+559,22
@@
func TestAzureBlobVolumeCreateBlobRace(t *testing.T) {
continuePut := make(chan struct{})
// Wait for the stub's Put to create the empty blob
v.azHandler.race <- continuePut
continuePut := make(chan struct{})
// Wait for the stub's Put to create the empty blob
v.azHandler.race <- continuePut
+ wg.Add(1)
go func() {
go func() {
+ defer wg.Done()
buf := make([]byte, len(TestBlock))
_, err := v.Get(context.Background(), TestHash, buf)
if err != nil {
t.Error(err)
}
buf := make([]byte, len(TestBlock))
_, err := v.Get(context.Background(), TestHash, buf)
if err != nil {
t.Error(err)
}
- close(allDone)
}()
// Wait for the stub's Get to get the empty blob
close(v.azHandler.race)
// Allow stub's Put to continue, so the real data is ready
// when the volume's Get retries
<-continuePut
}()
// Wait for the stub's Get to get the empty blob
close(v.azHandler.race)
// Allow stub's Put to continue, so the real data is ready
// when the volume's Get retries
<-continuePut
- // Wait for
volume's Get to return the real data
- <-allDone
+ // Wait for
Get() and Put() to finish
+ wg.Wait()
}
func TestAzureBlobVolumeCreateBlobRaceDeadline(t *testing.T) {
}
func TestAzureBlobVolumeCreateBlobRaceDeadline(t *testing.T) {