2018-10-22 14:43:57 -07:00
|
|
|
package keys
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/cosmos/cosmos-sdk/crypto/keys"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestGetKeyBaseLocks(t *testing.T) {
|
|
|
|
dir, err := ioutil.TempDir("", "cosmos-sdk-keys")
|
|
|
|
require.Nil(t, err)
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
|
|
|
|
// Acquire db
|
|
|
|
kb, err := GetKeyBaseFromDirWithWritePerm(dir)
|
|
|
|
require.Nil(t, err)
|
2018-10-24 06:37:06 -07:00
|
|
|
_, _, err = kb.CreateMnemonic("foo", keys.English, "12345678", keys.Secp256k1)
|
2018-10-22 14:43:57 -07:00
|
|
|
require.Nil(t, err)
|
|
|
|
// Reset global variable
|
|
|
|
keybase = nil
|
|
|
|
// Try to acquire another keybase from the same storage
|
|
|
|
_, err = GetKeyBaseFromDirWithWritePerm(dir)
|
|
|
|
require.NotNil(t, err)
|
|
|
|
_, err = GetKeyBaseFromDirWithWritePerm(dir)
|
|
|
|
require.NotNil(t, err)
|
|
|
|
|
|
|
|
// Close the db and try to acquire the lock
|
|
|
|
kb.CloseDB()
|
|
|
|
kb, err = GetKeyBaseFromDirWithWritePerm(dir)
|
|
|
|
require.Nil(t, err)
|
|
|
|
|
|
|
|
// Try to acquire another read-only keybase from the same storage
|
|
|
|
_, err = GetKeyBaseFromDir(dir)
|
|
|
|
require.Nil(t, err)
|
|
|
|
|
|
|
|
kb.CloseDB()
|
|
|
|
}
|