From f84185230d4c2f6481d299c8d1b590d60718af4b Mon Sep 17 00:00:00 2001 From: corylanou Date: Tue, 24 Mar 2020 15:00:32 -0500 Subject: [PATCH] make use of t.Helper --- executor_test.go | 14 ++++---- http/client_test.go | 16 ++++----- server/cluster_test.go | 48 +++++++++++++-------------- server/handler_test.go | 12 +++---- server/server_test.go | 74 +++++++++++++++++++++--------------------- test/pilosa.go | 32 +++++++++--------- 6 files changed, 99 insertions(+), 97 deletions(-) diff --git a/executor_test.go b/executor_test.go index 67e508be0..c41509dc2 100644 --- a/executor_test.go +++ b/executor_test.go @@ -1038,7 +1038,7 @@ func TestExecutor_Execute_TopN(t *testing.T) { t.Fatal(err) } - err := c[0].RecalculateCaches() + err := c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -1082,7 +1082,7 @@ func TestExecutor_Execute_TopN(t *testing.T) { t.Fatal(err) } - err := c[0].RecalculateCaches() + err := c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -1126,7 +1126,7 @@ func TestExecutor_Execute_TopN(t *testing.T) { t.Fatal(err) } - err := c[0].RecalculateCaches() + err := c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -1172,7 +1172,7 @@ func TestExecutor_Execute_TopN(t *testing.T) { t.Fatal(err) } - err := c[0].RecalculateCaches() + err := c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -1207,7 +1207,7 @@ func TestExecutor_Execute_TopN(t *testing.T) { Set(0, f=1) `}); err != nil { t.Fatal(err) - } else if err := c[0].RecalculateCaches(); err != nil { + } else if err := c[0].RecalculateCaches(t); err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -1336,7 +1336,7 @@ func TestExecutor_Execute_TopN_Src(t *testing.T) { hldr.SetBit("i", "other", 100, ShardWidth+1) hldr.SetBit("i", "other", 100, ShardWidth+2) - err := c[0].RecalculateCaches() + err := c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -3459,7 +3459,7 @@ func TestExecutor_Execute_ClearRow(t *testing.T) { t.Fatal(err) } - if err := c[0].RecalculateCaches(); err != nil { + if err := c[0].RecalculateCaches(t); err != nil { t.Fatalf("recalculating caches: %v", err) } diff --git a/http/client_test.go b/http/client_test.go index 9405c0230..3990e23ea 100644 --- a/http/client_test.go +++ b/http/client_test.go @@ -117,15 +117,15 @@ func TestClient_MultiNode(t *testing.T) { // Rebuild the RankCache. // We have to do this to avoid the 10-second cache invalidation delay // built into cache.Invalidate() - err = c[0].RecalculateCaches() + err = c[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating cache: %v", err) } - err = c[1].RecalculateCaches() + err = c[1].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating cache: %v", err) } - err = c[2].RecalculateCaches() + err = c[2].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating cache: %v", err) } @@ -616,7 +616,7 @@ func TestClient_ImportKeys(t *testing.T) { t.Fatal(err) } cmd.MustRecalculateCaches(t) - resp := cmd.MustQuery(t, &pilosa.QueryRequest{ + resp := cmd.QueryAPI(t, &pilosa.QueryRequest{ Index: "keyed", Query: "TopN(keyedf)", }) @@ -643,7 +643,7 @@ func TestClient_ImportKeys(t *testing.T) { t.Fatal(err) } cmd.MustRecalculateCaches(t) - resp := cmd.MustQuery(t, &pilosa.QueryRequest{ + resp := cmd.QueryAPI(t, &pilosa.QueryRequest{ Index: "keyed", Query: "TopN(unkeyedf)", }) @@ -670,7 +670,7 @@ func TestClient_ImportKeys(t *testing.T) { t.Fatal(err) } cmd.MustRecalculateCaches(t) - resp := cmd.MustQuery(t, &pilosa.QueryRequest{ + resp := cmd.QueryAPI(t, &pilosa.QueryRequest{ Index: "unkeyed", Query: "TopN(keyedf)", }) @@ -715,7 +715,7 @@ func TestClient_ImportKeys(t *testing.T) { t.Fatal(err) } cmd0.MustRecalculateCaches(t) - resp := cmd0.MustQuery(t, &pilosa.QueryRequest{ + resp := cmd0.QueryAPI(t, &pilosa.QueryRequest{ Index: "keyed", Query: "TopN(keyedf0)", }) @@ -747,7 +747,7 @@ func TestClient_ImportKeys(t *testing.T) { time.Sleep(500 * time.Millisecond) cmd1.MustRecalculateCaches(t) - resp := cmd1.MustQuery(t, &pilosa.QueryRequest{ + resp := cmd1.QueryAPI(t, &pilosa.QueryRequest{ Index: "keyed", Query: "TopN(keyedf1)", }) diff --git a/server/cluster_test.go b/server/cluster_test.go index 139b0dd9e..b9fe66903 100644 --- a/server/cluster_test.go +++ b/server/cluster_test.go @@ -86,7 +86,7 @@ func TestMain_SendReceiveMessage(t *testing.T) { } // Write data on first node. - if _, err := m0.Query("i", "", fmt.Sprintf(` + if _, err := m0.Query(t, "i", "", fmt.Sprintf(` Set(1, f=1) Set(%d, f=1) `, 2*pilosa.ShardWidth+1)); err != nil { @@ -117,7 +117,7 @@ func TestMain_SendReceiveMessage(t *testing.T) { // Ensure that an empty node comes up in a NORMAL state. func TestClusterResize_EmptyNode(t *testing.T) { - m0 := test.MustRunCommand() + m0 := test.RunCommand(t) defer m0.Close() if m0.API.State() != pilosa.ClusterStateNormal { @@ -200,7 +200,7 @@ func TestClusterResize_AddNode(t *testing.T) { } // Write data on first node. - if _, err := m0.Query("i", "", ` + if _, err := m0.Query(t, "i", "", ` Set(1, f=1) Set(1300000, f=1) `); err != nil { @@ -211,7 +211,7 @@ func TestClusterResize_AddNode(t *testing.T) { exp := `{"results":[{"attrs":{},"columns":[1,1300000]}]}` + "\n" // Verify the data exists on the single node. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -234,12 +234,12 @@ func TestClusterResize_AddNode(t *testing.T) { } // Verify the data exists on both nodes. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) } - if res, err := m1.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m1.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -263,7 +263,7 @@ func TestClusterResize_AddNode(t *testing.T) { } // Write data on first node. Note that no data is placed on shard 1. - if _, err := m0.Query("i", "", ` + if _, err := m0.Query(t, "i", "", ` Set(1, f=1) Set(2400000, f=1) `); err != nil { @@ -274,7 +274,7 @@ func TestClusterResize_AddNode(t *testing.T) { exp := `{"results":[{"attrs":{},"columns":[1,2400000]}]}` + "\n" // Verify the data exists on the single node. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -297,12 +297,12 @@ func TestClusterResize_AddNode(t *testing.T) { } // Verify the data exists on both nodes. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) } - if res, err := m1.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m1.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -373,7 +373,7 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { } // Write data on first node. - if _, err := m0.Query("i", "", ` + if _, err := m0.Query(t, "i", "", ` Set(1, f=1) Set(1300000, f=1) `); err != nil { @@ -384,7 +384,7 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { exp := `{"results":[{"attrs":{},"columns":[1,1300000]}]}` + "\n" // Verify the data exists on the single node. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -412,12 +412,12 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { } // Verify the data exists on both nodes. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) } - if res, err := m1.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m1.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -441,7 +441,7 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { } // Write data on first node. Note that no data is placed on shard 1. - if _, err := m0.Query("i", "", ` + if _, err := m0.Query(t, "i", "", ` Set(1, f=1) Set(2400000, f=1) `); err != nil { @@ -452,7 +452,7 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { exp := `{"results":[{"attrs":{},"columns":[1,2400000]}]}` + "\n" // Verify the data exists on the single node. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -480,12 +480,12 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) { } // Verify the data exists on both nodes. - if res, err := m0.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m0.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) } - if res, err := m1.Query("i", "", `Row(f=1)`); err != nil { + if res, err := m1.Query(t, "i", "", `Row(f=1)`); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result: %s", res) @@ -558,7 +558,7 @@ func TestClusterResize_RemoveNode(t *testing.T) { m1 := cluster[1] mustNodeID := func(baseURL string) string { - body := test.MustDo("GET", fmt.Sprintf("%s/status", baseURL), "").Body + body := test.Do(t, "GET", fmt.Sprintf("%s/status", baseURL), "").Body var resp map[string]interface{} err := json.Unmarshal([]byte(body), &resp) if err != nil { @@ -571,7 +571,7 @@ func TestClusterResize_RemoveNode(t *testing.T) { } t.Run("ErrorRemoveInvalidNode", func(t *testing.T) { - resp := test.MustDo("POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), `{"id": "invalid-node-id"}`) + resp := test.Do(t, "POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), `{"id": "invalid-node-id"}`) expBody := "removing node: finding node to remove: node with provided ID does not exist" if resp.StatusCode != http.StatusNotFound { t.Fatalf("expected StatusCode %d but got %d", http.StatusNotFound, resp.StatusCode) @@ -582,7 +582,7 @@ func TestClusterResize_RemoveNode(t *testing.T) { t.Run("ErrorRemoveCoordinator", func(t *testing.T) { nodeID := mustNodeID(m0.URL()) - resp := test.MustDo("POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) + resp := test.Do(t, "POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) expBody := "removing node: calling node leave: coordinator cannot be removed; first, make a different node the new coordinator" if resp.StatusCode != http.StatusInternalServerError { @@ -595,7 +595,7 @@ func TestClusterResize_RemoveNode(t *testing.T) { t.Run("ErrorRemoveOnNonCoordinator", func(t *testing.T) { coordinatorNodeID := mustNodeID(m0.URL()) nodeID := mustNodeID(m1.URL()) - resp := test.MustDo("POST", m1.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) + resp := test.Do(t, "POST", m1.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) expBody := fmt.Sprintf("removing node: calling node leave: node removal requests are only valid on the coordinator node: %s", coordinatorNodeID) if resp.StatusCode != http.StatusInternalServerError { @@ -622,12 +622,12 @@ func TestClusterResize_RemoveNode(t *testing.T) { setColumns += fmt.Sprintf("Set(%d, f=1) ", i*pilosa.ShardWidth) } - if _, err := m0.Query("i", "", setColumns); err != nil { + if _, err := m0.Query(t, "i", "", setColumns); err != nil { t.Fatal(err) } nodeID := mustNodeID(m1.URL()) - resp := test.MustDo("POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) + resp := test.Do(t, "POST", m0.URL()+fmt.Sprintf("/cluster/resize/remove-node"), fmt.Sprintf(`{"id": "%s"}`, nodeID)) expBody := "not enough data to perform resize" if resp.StatusCode != http.StatusInternalServerError { t.Fatalf("expected StatusCode %d but got %d", http.StatusInternalServerError, resp.StatusCode) diff --git a/server/handler_test.go b/server/handler_test.go index e561430fa..df87e6d64 100644 --- a/server/handler_test.go +++ b/server/handler_test.go @@ -1048,7 +1048,7 @@ func TestCluster_TranslateStore(t *testing.T) { t.Fatalf("starting cluster 0: %v", err) } - test.MustDo("POST", cluster[0].URL()+"/index/i0", "{\"options\": {\"keys\": true}}") + test.Do(t, "POST", cluster[0].URL()+"/index/i0", "{\"options\": {\"keys\": true}}") } func TestClusterTranslator(t *testing.T) { @@ -1076,15 +1076,15 @@ func TestClusterTranslator(t *testing.T) { t.Fatalf("starting cluster 1: %v", err) } - test.MustDo("POST", cluster[0].URL()+"/index/i0", "{\"options\": {\"keys\": true}}") - test.MustDo("POST", cluster[0].URL()+"/index/i0/field/f0", "{\"options\": {\"keys\": true}}") + test.Do(t, "POST", cluster[0].URL()+"/index/i0", "{\"options\": {\"keys\": true}}") + test.Do(t, "POST", cluster[0].URL()+"/index/i0/field/f0", "{\"options\": {\"keys\": true}}") - test.MustDo("POST", cluster[0].URL()+"/index/i0/query", "Set(\"foo\", f0=\"bar\")") + test.Do(t, "POST", cluster[0].URL()+"/index/i0/query", "Set(\"foo\", f0=\"bar\")") var result0, result1 string if err := test.RetryUntil(2*time.Second, func() error { - result0 = test.MustDo("POST", cluster[0].URL()+"/index/i0/query", "Row(f0=\"bar\")").Body - result1 = test.MustDo("POST", cluster[1].URL()+"/index/i0/query", "Row(f0=\"bar\")").Body + result0 = test.Do(t, "POST", cluster[0].URL()+"/index/i0/query", "Row(f0=\"bar\")").Body + result1 = test.Do(t, "POST", cluster[1].URL()+"/index/i0/query", "Row(f0=\"bar\")").Body if result0 != result1 { return fmt.Errorf("`%s` != `%s`", result0, result1) } diff --git a/server/server_test.go b/server/server_test.go index 5225e7a05..113347197 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -57,7 +57,7 @@ func TestMain_Set_Quick(t *testing.T) { rand := rand.New(rand.NewSource(int64(i))) cmds := GenerateSetCommands(1000, rand) - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() // Create client. @@ -74,7 +74,7 @@ func TestMain_Set_Quick(t *testing.T) { if err := client.CreateField(context.Background(), "i", cmd.Field); err != nil && err != pilosa.ErrFieldExists { t.Fatal(err) } - if _, err := m.Query("i", "", fmt.Sprintf(`Set(%d, %s=%d)`, cmd.ColumnID, cmd.Field, cmd.ID)); err != nil { + if _, err := m.Query(t, "i", "", fmt.Sprintf(`Set(%d, %s=%d)`, cmd.ColumnID, cmd.Field, cmd.ID)); err != nil { t.Fatal(err) } } @@ -90,7 +90,7 @@ func TestMain_Set_Quick(t *testing.T) { }, }, }) + "\n" - if res, err := m.Query("i", "", fmt.Sprintf(`Row(%s=%d)`, field, id)); err != nil { + if res, err := m.Query(t, "i", "", fmt.Sprintf(`Row(%s=%d)`, field, id)); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result:\n\ngot=%s\n\nexp=%s\n\n", res, exp) @@ -113,7 +113,7 @@ func TestMain_Set_Quick(t *testing.T) { }, }, }) + "\n" - if res, err := m.Query("i", "", fmt.Sprintf(`Row(%s=%d)`, field, id)); err != nil { + if res, err := m.Query(t, "i", "", fmt.Sprintf(`Row(%s=%d)`, field, id)); err != nil { t.Fatal(err) } else if res != exp { t.Fatalf("unexpected result (reopen):\n\ngot=%s\n\nexp=%s\n\n", res, exp) @@ -126,7 +126,7 @@ func TestMain_Set_Quick(t *testing.T) { // Ensure program can set row attributes and retrieve them. func TestMain_SetRowAttrs(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() // Create fields. @@ -142,36 +142,36 @@ func TestMain_SetRowAttrs(t *testing.T) { } // Set columns on different rows in different fields. - if _, err := m.Query("i", "", `Set(100, x=1)`); err != nil { + if _, err := m.Query(t, "i", "", `Set(100, x=1)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `Set(100, x=2)`); err != nil { + } else if _, err := m.Query(t, "i", "", `Set(100, x=2)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `Set(100, x=2)`); err != nil { + } else if _, err := m.Query(t, "i", "", `Set(100, x=2)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `Set(100, neg=3)`); err != nil { + } else if _, err := m.Query(t, "i", "", `Set(100, neg=3)`); err != nil { t.Fatal(err) } // Set row attributes. - if _, err := m.Query("i", "", `SetRowAttrs(x, 1, x=100)`); err != nil { + if _, err := m.Query(t, "i", "", `SetRowAttrs(x, 1, x=100)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `SetRowAttrs(x, 2, x=-200)`); err != nil { + } else if _, err := m.Query(t, "i", "", `SetRowAttrs(x, 2, x=-200)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `SetRowAttrs(z, 2, x=300)`); err != nil { + } else if _, err := m.Query(t, "i", "", `SetRowAttrs(z, 2, x=300)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `SetRowAttrs(neg, 3, x=-0.44)`); err != nil { + } else if _, err := m.Query(t, "i", "", `SetRowAttrs(neg, 3, x=-0.44)`); err != nil { t.Fatal(err) } // Query row x/1. - if res, err := m.Query("i", "", `Row(x=1)`); err != nil { + if res, err := m.Query(t, "i", "", `Row(x=1)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{"x":100},"columns":[100]}]}`+"\n" { t.Fatalf("unexpected result: %s", res) } // Query row x/2. - if res, err := m.Query("i", "", `Row(x=2)`); err != nil { + if res, err := m.Query(t, "i", "", `Row(x=2)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{"x":-200},"columns":[100]}]}`+"\n" { t.Fatalf("unexpected result: %s", res) @@ -182,19 +182,19 @@ func TestMain_SetRowAttrs(t *testing.T) { } // Query rows after reopening. - if res, err := m.Query("i", "columnAttrs=true", `Row(x=1)`); err != nil { + if res, err := m.Query(t, "i", "columnAttrs=true", `Row(x=1)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{"x":100},"columns":[100]}]}`+"\n" { t.Fatalf("unexpected result(reopen): %s", res) } - if res, err := m.Query("i", "columnAttrs=true", `Row(neg=3)`); err != nil { + if res, err := m.Query(t, "i", "columnAttrs=true", `Row(neg=3)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{"x":-0.44},"columns":[100]}]}`+"\n" { t.Fatalf("unexpected result(reopen): %s", res) } // Query row x/2. - if res, err := m.Query("i", "", `Row(x=2)`); err != nil { + if res, err := m.Query(t, "i", "", `Row(x=2)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{"x":-200},"columns":[100]}]}`+"\n" { t.Fatalf("unexpected result: %s", res) @@ -203,7 +203,7 @@ func TestMain_SetRowAttrs(t *testing.T) { // Ensure program can set column attributes and retrieve them. func TestMain_SetColumnAttrs(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() // Create fields. @@ -215,19 +215,19 @@ func TestMain_SetColumnAttrs(t *testing.T) { } // Set columns on row. - if _, err := m.Query("i", "", `Set(100, x=1)`); err != nil { + if _, err := m.Query(t, "i", "", `Set(100, x=1)`); err != nil { t.Fatal(err) - } else if _, err := m.Query("i", "", `Set(101, x=1)`); err != nil { + } else if _, err := m.Query(t, "i", "", `Set(101, x=1)`); err != nil { t.Fatal(err) } // Set column attributes. - if _, err := m.Query("i", "", `SetColumnAttrs(100, foo="bar")`); err != nil { + if _, err := m.Query(t, "i", "", `SetColumnAttrs(100, foo="bar")`); err != nil { t.Fatal(err) } // Query row. - if res, err := m.Query("i", "columnAttrs=true", `Row(x=1)`); err != nil { + if res, err := m.Query(t, "i", "columnAttrs=true", `Row(x=1)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{},"columns":[100,101]}],"columnAttrs":[{"id":100,"attrs":{"foo":"bar"}}]}`+"\n" { t.Fatalf("unexpected result: %s", res) @@ -238,7 +238,7 @@ func TestMain_SetColumnAttrs(t *testing.T) { } // Query row after reopening. - if res, err := m.Query("i", "columnAttrs=true", `Row(x=1)`); err != nil { + if res, err := m.Query(t, "i", "columnAttrs=true", `Row(x=1)`); err != nil { t.Fatal(err) } else if res != `{"results":[{"attrs":{},"columns":[100,101]}],"columnAttrs":[{"id":100,"attrs":{"foo":"bar"}}]}`+"\n" { t.Fatalf("unexpected result(reopen): %s", res) @@ -246,7 +246,7 @@ func TestMain_SetColumnAttrs(t *testing.T) { } func TestMain_GroupBy(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() // Create fields. @@ -279,7 +279,7 @@ func TestMain_GroupBy(t *testing.T) { ` // Set columns on row. - if _, err := m.Query("i", "", query); err != nil { + if _, err := m.Query(t, "i", "", query); err != nil { t.Fatal(err) } @@ -299,7 +299,7 @@ func TestMain_GroupBy(t *testing.T) { } func TestMain_MinMaxFloat(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() // Create fields. @@ -317,7 +317,7 @@ func TestMain_MinMaxFloat(t *testing.T) { ` // Set columns on row. - if _, err := m.Query("i", "", query); err != nil { + if _, err := m.Query(t, "i", "", query); err != nil { t.Fatal(err) } @@ -396,12 +396,12 @@ func TestMain_RecalculateHashes(t *testing.T) { data = append(data, fmt.Sprintf(`Set(%d, f=%d)`, columnID, rowID)) } } - if _, err := cluster[0].Query("i", "", strings.Join(data, "")); err != nil { + if _, err := cluster[0].Query(t, "i", "", strings.Join(data, "")); err != nil { t.Fatal("setting columns:", err) } // Calculate caches on the first node - err := cluster[0].RecalculateCaches() + err := cluster[0].RecalculateCaches(t) if err != nil { t.Fatalf("recalculating caches: %v", err) } @@ -410,7 +410,7 @@ func TestMain_RecalculateHashes(t *testing.T) { // Run a TopN query on all nodes. The result should be the same as the target. for _, m := range cluster { - res, err := m.Query("i", "", `TopN(f)`) + res, err := m.Query(t, "i", "", `TopN(f)`) if err != nil { t.Fatal(err) } @@ -737,7 +737,7 @@ func TestRemoveConcurrentIndexCreation(t *testing.T) { // Ensure program imports timestamps as UTC. func TestMain_ImportTimestamp(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() indexName := "i" @@ -789,7 +789,7 @@ func TestMain_ImportTimestamp(t *testing.T) { } func TestMain_ImportTimestampNoStandardView(t *testing.T) { - m := test.MustRunCommand() + m := test.RunCommand(t) defer m.Close() indexName := "i" @@ -1028,7 +1028,7 @@ func TestClusterMinMaxSumDecimal(t *testing.T) { cmd.MustCreateIndex(t, "testdec", pilosa.IndexOptions{Keys: true, TrackExistence: true}) cmd.MustCreateField(t, "testdec", "adec", pilosa.OptFieldTypeDecimal(2)) - test.MustDo("POST", cluster[0].URL()+"/index/testdec/query", ` + test.Do(t, "POST", cluster[0].URL()+"/index/testdec/query", ` Set("a", adec=42.2) Set("b", adec=11.12) Set("c", adec=13.41) @@ -1039,21 +1039,21 @@ Set("g", adec=15.52) Set("h", adec=100.22) `) - result := test.MustDo("POST", cluster[0].URL()+"/index/testdec/query", "Sum(field=adec)") + result := test.Do(t, "POST", cluster[0].URL()+"/index/testdec/query", "Sum(field=adec)") if !strings.Contains(result.Body, `"floatValue":305.59`) { t.Fatalf("expected float sum of 305.59, but got: '%s'", result.Body) } else if !strings.Contains(result.Body, `"count":8`) { t.Fatalf("expected count 8, but got: '%s'", result.Body) } - result = test.MustDo("POST", cluster[0].URL()+"/index/testdec/query", "Max(field=adec)") + result = test.Do(t, "POST", cluster[0].URL()+"/index/testdec/query", "Max(field=adec)") if !strings.Contains(result.Body, `"floatValue":100.22`) { t.Fatalf("expected float max of 100.22, but got: '%s'", result.Body) } else if !strings.Contains(result.Body, `"count":1`) { t.Fatalf("expected count 1, but got: '%s'", result.Body) } - result = test.MustDo("POST", cluster[0].URL()+"/index/testdec/query", "Min(field=adec)") + result = test.Do(t, "POST", cluster[0].URL()+"/index/testdec/query", "Min(field=adec)") if !strings.Contains(result.Body, `"floatValue":11.12`) { t.Fatalf("expected float min of 11.12, but got: '%s'", result.Body) } else if !strings.Contains(result.Body, `"count":1`) { diff --git a/test/pilosa.go b/test/pilosa.go index 3896b7ce0..8179c04e0 100644 --- a/test/pilosa.go +++ b/test/pilosa.go @@ -99,13 +99,14 @@ func NewCommandNode(isCoordinator bool, opts ...server.CommandOption) *Command { return m } -// MustRunCommand returns a new, running Main. Panic on error. -func MustRunCommand() *Command { +// RunCommand returns a new, running Main. Panic on error. +func RunCommand(t *testing.T) *Command { + t.Helper() m := newCommand(server.OptCommandServerOptions(pilosa.OptServerOpenTranslateStore(pilosa.OpenInMemTranslateStore))) m.Config.Metric.Diagnostics = false // Disable diagnostics. m.Config.Gossip.Port = "0" if err := m.Start(); err != nil { - panic(err) + t.Fatal(err) } return m } @@ -174,9 +175,9 @@ func (m *Command) MustCreateField(tb testing.TB, index, field string, opts ...pi return f } -// MustQuery uses this command's API to execute the given query request, failing +// QueryAPI uses this command's API to execute the given query request, failing // if Query returns a non-nil error, otherwise returning the QueryResponse. -func (m *Command) MustQuery(tb testing.TB, req *pilosa.QueryRequest) pilosa.QueryResponse { +func (m *Command) QueryAPI(tb testing.TB, req *pilosa.QueryRequest) pilosa.QueryResponse { tb.Helper() resp, err := m.API.Query(context.Background(), req) if err != nil { @@ -203,8 +204,8 @@ func (m *Command) Client() *http.InternalClient { } // Query executes a query against the program through the HTTP API. -func (m *Command) Query(index, rawQuery, query string) (string, error) { - resp := MustDo("POST", m.URL()+fmt.Sprintf("/index/%s/query?", index)+rawQuery, query) +func (m *Command) Query(t *testing.T, index, rawQuery, query string) (string, error) { + resp := Do(t, "POST", m.URL()+fmt.Sprintf("/index/%s/query?", index)+rawQuery, query) if resp.StatusCode != gohttp.StatusOK { return "", fmt.Errorf("invalid status: %d, body=%s", resp.StatusCode, resp.Body) } @@ -255,8 +256,8 @@ func (m *Command) QueryProtobuf(indexName string, query string) (*pilosa.QueryRe } // RecalculateCaches is deprecated. Use MustRecalculateCaches. -func (m *Command) RecalculateCaches() error { - resp := MustDo("POST", fmt.Sprintf("%s/recalculate-caches", m.URL()), "") +func (m *Command) RecalculateCaches(t *testing.T) error { + resp := Do(t, "POST", fmt.Sprintf("%s/recalculate-caches", m.URL()), "") if resp.StatusCode != 204 { return fmt.Errorf("invalid status: %d, body=%s", resp.StatusCode, resp.Body) } @@ -274,7 +275,7 @@ func (c Cluster) Query(t testing.TB, index, query string) pilosa.QueryResponse { t.Fatal("must have at least one node in cluster to query") } - return c[0].MustQuery(t, &pilosa.QueryRequest{Index: index, Query: query}) + return c[0].QueryAPI(t, &pilosa.QueryRequest{Index: index, Query: query}) } func (c Cluster) ImportBits(t testing.TB, index, field string, rowcols [][2]uint64) { @@ -454,15 +455,16 @@ func prependWithMemStore(opts []server.CommandOption) []server.CommandOption { //////////////////////////////////////////////////////////////////////////////////// -// MustDo executes http.Do() with an http.NewRequest(). Panic on error. -func MustDo(method, urlStr string, body string) *httpResponse { +// Do executes http.Do() with an http.NewRequest(). +func Do(t *testing.T, method, urlStr string, body string) *httpResponse { + t.Helper() req, err := gohttp.NewRequest( method, urlStr, strings.NewReader(body), ) if err != nil { - panic(err) + t.Fatal(err) } req.Header.Set("Content-Type", "application/json") @@ -470,13 +472,13 @@ func MustDo(method, urlStr string, body string) *httpResponse { resp, err := gohttp.DefaultClient.Do(req) if err != nil { - panic(err) + t.Fatal(err) } defer resp.Body.Close() buf, err := ioutil.ReadAll(resp.Body) if err != nil { - panic(err) + t.Fatal(err) } return &httpResponse{Response: resp, Body: string(buf)}