X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/359de7e4f707e744356e98b14e620d15041c409d..54ee2b06add844efae0b0fcb97606102232974e6:/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 a1abf961b8..1cb6dc380d 100644 --- a/services/keepstore/azure_blob_volume_test.go +++ b/services/keepstore/azure_blob_volume_test.go @@ -26,7 +26,8 @@ import ( "testing" "time" - "github.com/curoverse/azure-sdk-for-go/storage" + "github.com/Azure/azure-sdk-for-go/storage" + "github.com/ghodss/yaml" check "gopkg.in/check.v1" ) @@ -535,9 +536,13 @@ func TestAzureBlobVolumeCreateBlobRace(t *testing.T) { azureWriteRaceInterval = time.Second azureWriteRacePollTime = time.Millisecond - allDone := make(chan struct{}) + var wg sync.WaitGroup + v.azHandler.race = make(chan chan struct{}) + + wg.Add(1) go func() { + defer wg.Done() err := v.Put(context.Background(), TestHash, TestBlock) if err != nil { t.Error(err) @@ -546,21 +551,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 + wg.Add(1) go func() { + defer wg.Done() 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 volume's Get to return the real data - <-allDone + // Wait for Get() and Put() to finish + wg.Wait() } func TestAzureBlobVolumeCreateBlobRaceDeadline(t *testing.T) { @@ -707,6 +713,18 @@ func (s *StubbedAzureBlobSuite) TestStats(c *check.C) { c.Check(stats(), check.Matches, `.*"InBytes":6,.*`) } +func (s *StubbedAzureBlobSuite) TestConfig(c *check.C) { + var cfg Config + err := yaml.Unmarshal([]byte(` +Volumes: + - Type: Azure + StorageClasses: ["class_a", "class_b"] +`), &cfg) + + c.Check(err, check.IsNil) + c.Check(cfg.Volumes[0].GetStorageClasses(), check.DeepEquals, []string{"class_a", "class_b"}) +} + func (v *TestableAzureBlobVolume) PutRaw(locator string, data []byte) { v.azHandler.PutRaw(v.ContainerName, locator, data) }