From 3aeb10a0597648cba57f7d1b0e4987b35dcf9c28 Mon Sep 17 00:00:00 2001 From: Alex Browne Date: Thu, 25 Jul 2019 17:32:52 -0700 Subject: [PATCH] Remember to call db.Close and meshdb.Close in tests --- core/core.go | 2 +- core/core_test.go | 3 ++- db/collection_test.go | 8 ++++++++ db/escape_test.go | 1 + db/global_transaction_test.go | 3 +++ db/index_test.go | 1 + db/integrity_check_test.go | 3 +++ db/query_benchmark_test.go | 1 + db/query_test.go | 5 +++++ db/snapshot_test.go | 1 + db/transaction_test.go | 3 +++ ethereum/blockwatch/block_watcher_test.go | 15 ++++++++------- meshdb/meshdb.go | 4 ++-- meshdb/meshdb_test.go | 3 ++- 14 files changed, 41 insertions(+), 12 deletions(-) diff --git a/core/core.go b/core/core.go index 1eba19586..69d6b86df 100644 --- a/core/core.go +++ b/core/core.go @@ -129,7 +129,7 @@ func New(config Config) (*App, error) { // Initialize db databasePath := filepath.Join(config.DataDir, "db") - meshDB, err := meshdb.NewMeshDB(databasePath) + meshDB, err := meshdb.New(databasePath) if err != nil { return nil, err } diff --git a/core/core_test.go b/core/core_test.go index 8fd2af1af..f95a47dd6 100644 --- a/core/core_test.go +++ b/core/core_test.go @@ -12,8 +12,9 @@ import ( ) func TestEthereumNetworkDetection(t *testing.T) { - meshDB, err := meshdb.NewMeshDB("/tmp/meshdb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/meshdb_testing/" + uuid.New().String()) require.NoError(t, err) + defer meshDB.Close() // simulate starting up on mainnet err = initNetworkID(1, meshDB) diff --git a/db/collection_test.go b/db/collection_test.go index 84377a2f2..685bd17c2 100644 --- a/db/collection_test.go +++ b/db/collection_test.go @@ -12,6 +12,7 @@ import ( func TestNewCollection(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() _, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) _, err = db.NewCollection("people", &testModel{}) @@ -21,6 +22,7 @@ func TestNewCollection(t *testing.T) { func TestInsert(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) expected := &testModel{ @@ -36,6 +38,7 @@ func TestInsert(t *testing.T) { func TestFindByID(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) expected := &testModel{ @@ -51,6 +54,7 @@ func TestFindByID(t *testing.T) { func TestUpdate(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) original := &testModel{ @@ -71,6 +75,7 @@ func TestUpdate(t *testing.T) { func TestFindAll(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) expected := []*testModel{} @@ -90,6 +95,7 @@ func TestFindAll(t *testing.T) { func TestCount(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -135,6 +141,7 @@ func TestCount(t *testing.T) { func TestDelete(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) col.AddIndex("age", func(m Model) []byte { @@ -161,6 +168,7 @@ func TestDelete(t *testing.T) { func TestDeleteAfterUpdate(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) col.AddIndex("age", func(m Model) []byte { diff --git a/db/escape_test.go b/db/escape_test.go index 662003339..c4c7229dc 100644 --- a/db/escape_test.go +++ b/db/escape_test.go @@ -36,6 +36,7 @@ func TestEscapeUnescape(t *testing.T) { func TestFindWithValueWithEscape(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) ageIndex := col.AddIndex("age", func(m Model) []byte { diff --git a/db/global_transaction_test.go b/db/global_transaction_test.go index dacf37c2b..f5abf70b7 100644 --- a/db/global_transaction_test.go +++ b/db/global_transaction_test.go @@ -13,6 +13,7 @@ import ( func TestGlobalTransaction(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col0, err := db.NewCollection("people0", &testModel{}) require.NoError(t, err) col1, err := db.NewCollection("people1", &testModel{}) @@ -164,6 +165,7 @@ func TestGlobalTransaction(t *testing.T) { func TestGlobalTransactionCount(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -268,6 +270,7 @@ func TestGlobalTransactionCount(t *testing.T) { func TestGlobalTransactionExclusion(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col0, err := db.NewCollection("people0", &testModel{}) require.NoError(t, err) col1, err := db.NewCollection("people1", &testModel{}) diff --git a/db/index_test.go b/db/index_test.go index 0a1daab1b..c2c7724d1 100644 --- a/db/index_test.go +++ b/db/index_test.go @@ -29,6 +29,7 @@ func TestInsertWithIndex(t *testing.T) { func TestUpdateWithIndex(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) col.AddIndex("age", func(m Model) []byte { diff --git a/db/integrity_check_test.go b/db/integrity_check_test.go index d57517b97..eeb1c7f16 100644 --- a/db/integrity_check_test.go +++ b/db/integrity_check_test.go @@ -19,6 +19,7 @@ func TestIntegrityCheckPass(t *testing.T) { func TestIntegrityCheckInvalidModelData(t *testing.T) { t.Parallel() db, col, models, _ := setUpIntegrityCheckTest(t) + defer db.Close() // Manually break integrity by storing invalid model data. keyToChange := col.info.primaryKeyForModel(models[0]) @@ -30,6 +31,7 @@ func TestIntegrityCheckInvalidModelData(t *testing.T) { func TestIntegrityCheckIndexKeyWithoutModelData(t *testing.T) { t.Parallel() db, col, models, _ := setUpIntegrityCheckTest(t) + defer db.Close() // Manually break integrity by deleting a primary key. keyToDelete := col.info.primaryKeyForModel(models[0]) @@ -41,6 +43,7 @@ func TestIntegrityCheckIndexKeyWithoutModelData(t *testing.T) { func TestIntegrityCheckModelNotIndexed(t *testing.T) { t.Parallel() db, _, models, ageIndex := setUpIntegrityCheckTest(t) + defer db.Close() // Manually break integrity by deleting an index key. keyToDelete := ageIndex.keysForModel(models[0])[0] diff --git a/db/query_benchmark_test.go b/db/query_benchmark_test.go index fba0b4a2c..4eb1b9b5d 100644 --- a/db/query_benchmark_test.go +++ b/db/query_benchmark_test.go @@ -12,6 +12,7 @@ const defaultTargetNickname = "target" func setupQueryBenchmark(b *testing.B) (db *DB, col *Collection, nicknameIndex *Index) { b.Helper() db = newTestDB(b) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(b, err) nicknameIndex = col.AddMultiIndex("nicknames", func(m Model) [][]byte { diff --git a/db/query_test.go b/db/query_test.go index 4ca7f9687..959ef3cb4 100644 --- a/db/query_test.go +++ b/db/query_test.go @@ -12,6 +12,7 @@ import ( func TestQueryWithValue(t *testing.T) { db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -52,6 +53,7 @@ func TestQueryWithValue(t *testing.T) { func TestQueryWithRange(t *testing.T) { db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -76,6 +78,7 @@ func TestQueryWithRange(t *testing.T) { func TestQueryWithPrefix(t *testing.T) { db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -134,6 +137,7 @@ func TestQueryWithPrefix(t *testing.T) { func TestFindWithValueWithMultiIndex(t *testing.T) { db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) nicknameIndex := col.AddMultiIndex("nicknames", func(m Model) [][]byte { @@ -195,6 +199,7 @@ func TestFindWithValueWithMultiIndex(t *testing.T) { func TestFindWithRangeWithMultiIndex(t *testing.T) { db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) nicknameIndex := col.AddMultiIndex("nicknames", func(m Model) [][]byte { diff --git a/db/snapshot_test.go b/db/snapshot_test.go index c4e959aa0..df50c1227 100644 --- a/db/snapshot_test.go +++ b/db/snapshot_test.go @@ -12,6 +12,7 @@ import ( func TestSnapshot(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) diff --git a/db/transaction_test.go b/db/transaction_test.go index bcc9ec64a..96317126f 100644 --- a/db/transaction_test.go +++ b/db/transaction_test.go @@ -14,6 +14,7 @@ import ( func TestTransaction(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -89,6 +90,7 @@ func TestTransaction(t *testing.T) { func TestTransactionCount(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col, err := db.NewCollection("people", &testModel{}) require.NoError(t, err) @@ -193,6 +195,7 @@ func TestTransactionCount(t *testing.T) { func TestTransactionExclusion(t *testing.T) { t.Parallel() db := newTestDB(t) + defer db.Close() col0, err := db.NewCollection("people0", &testModel{}) require.NoError(t, err) col1, err := db.NewCollection("people1", &testModel{}) diff --git a/ethereum/blockwatch/block_watcher_test.go b/ethereum/blockwatch/block_watcher_test.go index 3a0d481d5..c17c2b959 100644 --- a/ethereum/blockwatch/block_watcher_test.go +++ b/ethereum/blockwatch/block_watcher_test.go @@ -32,7 +32,7 @@ func TestWatcher(t *testing.T) { require.NoError(t, err) // Polling interval unused because we hijack the ticker for this test - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() config.MeshDB = meshDB @@ -77,7 +77,7 @@ func TestWatcherStartStop(t *testing.T) { fakeClient, err := newFakeClient(basicFakeClientFixture) require.NoError(t, err) - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() config.MeshDB = meshDB @@ -180,7 +180,7 @@ func TestGetSubBlockRanges(t *testing.T) { fakeClient, err := newFakeClient(basicFakeClientFixture) require.NoError(t, err) - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() config.MeshDB = meshDB @@ -198,7 +198,7 @@ func TestGetMissedEventsToBackfillSomeMissed(t *testing.T) { fakeClient, err := newFakeClient("testdata/fake_client_fast_sync_fixture.json") require.NoError(t, err) - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() // Add block number 5 as the last block seen by BlockWatcher @@ -230,7 +230,7 @@ func TestGetMissedEventsToBackfillNoneMissed(t *testing.T) { fakeClient, err := newFakeClient("testdata/fake_client_basic_fixture.json") require.NoError(t, err) - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() // Add block number 5 as the last block seen by BlockWatcher @@ -371,8 +371,9 @@ func TestFilterLogsRecursively(t *testing.T) { }, } - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) + defer meshDB.Close() config.MeshDB = meshDB for _, testCase := range testCases { @@ -476,7 +477,7 @@ func TestGetLogsInBlockRange(t *testing.T) { }, } - meshDB, err := meshdb.NewMeshDB("/tmp/leveldb_testing/" + uuid.New().String()) + meshDB, err := meshdb.New("/tmp/leveldb_testing/" + uuid.New().String()) require.NoError(t, err) defer meshDB.Close() config.MeshDB = meshDB diff --git a/meshdb/meshdb.go b/meshdb/meshdb.go index b865260eb..ab5af73e1 100644 --- a/meshdb/meshdb.go +++ b/meshdb/meshdb.go @@ -83,8 +83,8 @@ type MetadataCollection struct { *db.Collection } -// NewMeshDB instantiates a new MeshDB instance -func NewMeshDB(path string) (*MeshDB, error) { +// New instantiates a new MeshDB instance +func New(path string) (*MeshDB, error) { database, err := db.Open(path) if err != nil { return nil, err diff --git a/meshdb/meshdb_test.go b/meshdb/meshdb_test.go index 3c0ca4c46..ccab7cb6d 100644 --- a/meshdb/meshdb_test.go +++ b/meshdb/meshdb_test.go @@ -16,8 +16,9 @@ import ( ) func TestOrderCRUDOperations(t *testing.T) { - meshDB, err := NewMeshDB("/tmp/meshdb_testing/" + uuid.New().String()) + meshDB, err := New("/tmp/meshdb_testing/" + uuid.New().String()) require.NoError(t, err) + defer meshDB.Close() contractAddresses, err := ethereum.GetContractAddressesForNetworkID(constants.TestNetworkID) require.NoError(t, err)