go_study/fabric-main/common/ledger/util/leveldbhelper/pkg_test.go

61 lines
1.2 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package leveldbhelper
import (
"os"
"testing"
"github.com/stretchr/testify/require"
)
const testDBPath = "/tmp/fabric/ledgertests/util/leveldbhelper"
type testDBEnv struct {
t *testing.T
path string
db *DB
}
type testDBProviderEnv struct {
t *testing.T
path string
provider *Provider
}
func newTestDBEnv(t *testing.T, path string) *testDBEnv {
testDBEnv := &testDBEnv{t: t, path: path}
testDBEnv.cleanup()
testDBEnv.db = CreateDB(&Conf{DBPath: path})
return testDBEnv
}
func newTestProviderEnv(t *testing.T, path string) *testDBProviderEnv {
testProviderEnv := &testDBProviderEnv{t: t, path: path}
testProviderEnv.cleanup()
var err error
testProviderEnv.provider, err = NewProvider(&Conf{DBPath: path})
if err != nil {
panic(err)
}
return testProviderEnv
}
func (dbEnv *testDBEnv) cleanup() {
if dbEnv.db != nil {
dbEnv.db.Close()
}
require.NoError(dbEnv.t, os.RemoveAll(dbEnv.path))
}
func (providerEnv *testDBProviderEnv) cleanup() {
if providerEnv.provider != nil {
providerEnv.provider.Close()
}
require.NoError(providerEnv.t, os.RemoveAll(providerEnv.path))
}