From ac8c4ed5fe5a2be21b06677ce826021d64ebd188 Mon Sep 17 00:00:00 2001 From: Matt Jaffee Date: Mon, 23 Sep 2019 07:51:04 -0500 Subject: [PATCH] add concurrent field creation test --- server/server_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/server/server_test.go b/server/server_test.go index 11a026dea..d968792ff 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -318,6 +318,30 @@ func TestConfig_Parse_DataDir(t *testing.T) { } } +func TestConcurrentFieldCreation(t *testing.T) { + cluster := test.MustRunCluster(t, 3) + defer cluster.Close() + + api0 := cluster[0].API + if _, err := api0.CreateIndex(context.Background(), "i", pilosa.IndexOptions{}); err != nil { + t.Fatalf("creating index: %v", err) + } + eg := errgroup.Group{} + for i := 0; i < 100; i++ { + i := i + eg.Go(func() error { + if _, err := api0.CreateField(context.Background(), "i", fmt.Sprintf("f%d", i)); err != nil { + return err + } + return nil + }) + } + err := eg.Wait() + if err != nil { + t.Fatalf("creating concurrent field: %v", err) + } +} + func TestMain_RecalculateHashes(t *testing.T) { const clusterSize = 5 cluster := test.MustRunCluster(t, clusterSize)