From 346dbb04fec5d9d52a77783c7b4d0bd91f05eeb4 Mon Sep 17 00:00:00 2001 From: Seebs Date: Wed, 12 Oct 2022 10:23:38 -0500 Subject: [PATCH] use t.Fatal(f) to abort tests, not panic --- tx_test.go | 57 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/tx_test.go b/tx_test.go index 1401b3450..fe79abe5f 100644 --- a/tx_test.go +++ b/tx_test.go @@ -8,13 +8,14 @@ import ( pilosa "github.com/molecula/featurebase/v3" "github.com/molecula/featurebase/v3/test" - . "github.com/molecula/featurebase/v3/vprint" // nolint:staticcheck ) -func queryIRABit(m0api *pilosa.API, acctOwnerID uint64, iraField string, iraRowID uint64, index string) (bit bool) { +func queryIRABit(t *testing.T, m0api *pilosa.API, acctOwnerID uint64, iraField string, iraRowID uint64, index string) (bit bool) { query := fmt.Sprintf("Row(%v=%v)", iraField, iraRowID) // acctOwnerID) res, err := m0api.Query(context.Background(), &pilosa.QueryRequest{Index: index, Query: query}) - PanicOn(err) + if err != nil { + t.Fatalf("querying IRA bit: %v", err) + } cols := res.Results[0].(*pilosa.Row).Columns() for i := range cols { if cols[i] == acctOwnerID { @@ -24,10 +25,12 @@ func queryIRABit(m0api *pilosa.API, acctOwnerID uint64, iraField string, iraRowI return false } -func mustQueryAcct(m0api *pilosa.API, acctOwnerID uint64, fieldAcct0, index string) (acctBal int64) { +func mustQueryAcct(t *testing.T, m0api *pilosa.API, acctOwnerID uint64, fieldAcct0, index string) (acctBal int64) { query := fmt.Sprintf("FieldValue(field=%v, column=%v)", fieldAcct0, acctOwnerID) res, err := m0api.Query(context.Background(), &pilosa.QueryRequest{Index: index, Query: query}) - PanicOn(err) + if err != nil { + t.Fatalf("querying account: %v", err) + } if len(res.Results) == 0 { return 0 @@ -36,10 +39,10 @@ func mustQueryAcct(m0api *pilosa.API, acctOwnerID uint64, fieldAcct0, index stri return valCount.Val } -func queryBalances(m0api *pilosa.API, acctOwnerID uint64, fldAcct0, fldAcct1, index string) (acct0bal, acct1bal int64) { +func queryBalances(t *testing.T, m0api *pilosa.API, acctOwnerID uint64, fldAcct0, fldAcct1, index string) (acct0bal, acct1bal int64) { - acct0bal = mustQueryAcct(m0api, acctOwnerID, fldAcct0, index) - acct1bal = mustQueryAcct(m0api, acctOwnerID, fldAcct1, index) + acct0bal = mustQueryAcct(t, m0api, acctOwnerID, fldAcct0, index) + acct1bal = mustQueryAcct(t, m0api, acctOwnerID, fldAcct1, index) return } @@ -143,19 +146,19 @@ func TestAPI_ImportAtomicRecord(t *testing.T) { //vv("AFTER the first ImportAtomicRecord!") - iraBit := queryIRABit(m0api, acctOwnerID, iraField, iraRowID, index) + iraBit := queryIRABit(t, m0api, acctOwnerID, iraField, iraRowID, index) if !iraBit { - PanicOn("IRA bit should have been set") + t.Fatal("IRA bit should have been set") } - startingBalanceAcct0, startingBalanceAcct1 := queryBalances(m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) + startingBalanceAcct0, startingBalanceAcct1 := queryBalances(t, m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) //vv("starting balance: acct0=%v, acct1=%v", startingBalanceAcct0, startingBalanceAcct1) if startingBalanceAcct0 != expectedBalStartingAcct0 { - PanicOn(fmt.Sprintf("expected %v, observed %v starting acct0 balance", expectedBalStartingAcct0, startingBalanceAcct0)) + t.Fatalf("expected %v, observed %v starting acct0 balance", expectedBalStartingAcct0, startingBalanceAcct0) } if startingBalanceAcct1 != expectedBalStartingAcct1 { - PanicOn(fmt.Sprintf("expected %v, observed %v starting acct1 balance", expectedBalStartingAcct1, startingBalanceAcct1)) + t.Fatalf("expected %v, observed %v starting acct1 balance", expectedBalStartingAcct1, startingBalanceAcct1) } //vv("sad path: transferUSD %v from %v -> %v, with power loss half-way through", transferUSD, fieldAcct0, fieldAcct1) @@ -174,20 +177,20 @@ func TestAPI_ImportAtomicRecord(t *testing.T) { err = m0api.ImportAtomicRecord(ctx, qcx, air.Clone(), opt) //err = m0api.ImportAtomicRecord(ctx, nil, air, opt) if err != pilosa.ErrAborted { - PanicOn(fmt.Sprintf("expected ErrTxnAborted but got err='%#v'", err)) + t.Fatalf("expected ErrTxnAborted but got err='%#v'", err) } // sad path, cleanup qcx.Abort() qcx = nil - b0, b1 := queryBalances(m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) + b0, b1 := queryBalances(t, m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) //vv("after power failure tx, balance: acct0=%v, acct1=%v", b0, b1) if b0 != expectedBalStartingAcct0 { - PanicOn(fmt.Sprintf("expected %v, observed %v starting acct0 balance", expectedBalStartingAcct0, b0)) + t.Fatalf("expected %v, observed %v starting acct0 balance", expectedBalStartingAcct0, b0) } if b1 != expectedBalStartingAcct1 { - PanicOn(fmt.Sprintf("expected %v, observed %v starting acct1 balance", expectedBalStartingAcct1, b1)) + t.Fatalf("expected %v, observed %v starting acct1 balance", expectedBalStartingAcct1, b1) } //vv("good: with power loss half-way, no change in account balances; acct0=%v; acct1=%v", b0, b1) @@ -198,16 +201,18 @@ func TestAPI_ImportAtomicRecord(t *testing.T) { qcx = m0api.Txf().NewQcx() err = m0api.ImportAtomicRecord(ctx, qcx, air.Clone()) - PanicOn(err) + if err != nil { + t.Fatalf("importing record: %v", err) + } if err := qcx.Finish(); err != nil { t.Fatal(err) } - eb0, eb1 := queryBalances(m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) + eb0, eb1 := queryBalances(t, m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) // should have been applied this time. if eb0 != expectedBalEndingAcct0 || eb1 != expectedBalEndingAcct1 { - PanicOn(fmt.Sprintf("problem: transaction did not get committed/applied. transferUSD=%v, but we see: startingBalanceAcct0=%v -> endingBalanceAcct0=%v; startingBalanceAcct1=%v -> endingBalanceAcct1=%v", transferUSD, startingBalanceAcct0, eb0, startingBalanceAcct1, eb1)) + t.Fatalf("problem: transaction did not get committed/applied. transferUSD=%v, but we see: startingBalanceAcct0=%v -> endingBalanceAcct0=%v; startingBalanceAcct1=%v -> endingBalanceAcct1=%v", transferUSD, startingBalanceAcct0, eb0, startingBalanceAcct1, eb1) } //vv("ending balance: acct0=%v, acct1=%v", eb0, eb1) @@ -218,20 +223,22 @@ func TestAPI_ImportAtomicRecord(t *testing.T) { qcx = m0api.Txf().NewQcx() err = m0api.ImportAtomicRecord(ctx, qcx, air) + if err != nil { + t.Fatalf("importing record: %v", err) + } if err := qcx.Finish(); err != nil { t.Fatal(err) } - PanicOn(err) - eb0, eb1 = queryBalances(m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) + eb0, eb1 = queryBalances(t, m0api, acctOwnerID, fieldAcct0, fieldAcct1, index) if eb0 != 0 || eb1 != 0 { - PanicOn("problem: bits did not clear") + t.Fatal("problem: bits did not clear") } //vv("cleared balances: acct0=%v, acct1=%v", eb0, eb1) - iraBit = queryIRABit(m0api, acctOwnerID, iraField, iraRowID, index) + iraBit = queryIRABit(t, m0api, acctOwnerID, iraField, iraRowID, index) if iraBit { - PanicOn("IRA bit should have been cleared") + t.Fatal("IRA bit should have been cleared") } }