diff --git a/beacon-chain/db/kv/kv_test.go b/beacon-chain/db/kv/kv_test.go index 68061b8919..47dded66af 100644 --- a/beacon-chain/db/kv/kv_test.go +++ b/beacon-chain/db/kv/kv_test.go @@ -1,29 +1,18 @@ package kv import ( - "crypto/rand" - "fmt" - "math/big" - "os" - "path" "testing" "github.com/prysmaticlabs/prysm/beacon-chain/cache" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) // setupDB instantiates and returns a Store instance. func setupDB(t testing.TB) *Store { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") - db, err := NewKVStore(p, cache.NewStateSummaryCache()) + db, err := NewKVStore(t.TempDir(), cache.NewStateSummaryCache()) require.NoError(t, err, "Failed to instantiate DB") t.Cleanup(func() { require.NoError(t, db.Close(), "Failed to close database") - require.NoError(t, os.RemoveAll(db.DatabasePath()), "Failed to remove directory") }) return db } diff --git a/beacon-chain/db/testing/BUILD.bazel b/beacon-chain/db/testing/BUILD.bazel index 7ecee67798..e966fdcdc0 100644 --- a/beacon-chain/db/testing/BUILD.bazel +++ b/beacon-chain/db/testing/BUILD.bazel @@ -10,7 +10,5 @@ go_library( "//beacon-chain/cache:go_default_library", "//beacon-chain/db:go_default_library", "//beacon-chain/db/kv:go_default_library", - "//shared/rand:go_default_library", - "//shared/testutil:go_default_library", ], ) diff --git a/beacon-chain/db/testing/setup_db.go b/beacon-chain/db/testing/setup_db.go index 15b181dbff..8742adc78d 100644 --- a/beacon-chain/db/testing/setup_db.go +++ b/beacon-chain/db/testing/setup_db.go @@ -3,27 +3,17 @@ package testing import ( - "fmt" - "os" - "path" "testing" "github.com/prysmaticlabs/prysm/beacon-chain/cache" "github.com/prysmaticlabs/prysm/beacon-chain/db" "github.com/prysmaticlabs/prysm/beacon-chain/db/kv" - "github.com/prysmaticlabs/prysm/shared/rand" - "github.com/prysmaticlabs/prysm/shared/testutil" ) // SetupDB instantiates and returns database backed by key value store. func SetupDB(t testing.TB) (db.Database, *cache.StateSummaryCache) { - randPath := rand.NewDeterministicGenerator().Int() - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - if err := os.RemoveAll(p); err != nil { - t.Fatalf("failed to remove directory: %v", err) - } sc := cache.NewStateSummaryCache() - s, err := kv.NewKVStore(p, sc) + s, err := kv.NewKVStore(t.TempDir(), sc) if err != nil { t.Fatal(err) } @@ -31,9 +21,6 @@ func SetupDB(t testing.TB) (db.Database, *cache.StateSummaryCache) { if err := s.Close(); err != nil { t.Fatalf("failed to close database: %v", err) } - if err := os.RemoveAll(s.DatabasePath()); err != nil { - t.Fatalf("could not remove tmp db dir: %v", err) - } }) return s, sc } diff --git a/beacon-chain/node/BUILD.bazel b/beacon-chain/node/BUILD.bazel index 98beefd878..33bfd6dc38 100644 --- a/beacon-chain/node/BUILD.bazel +++ b/beacon-chain/node/BUILD.bazel @@ -58,7 +58,6 @@ go_test( deps = [ "//beacon-chain/core/feed/state:go_default_library", "//shared/cmd:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_sirupsen_logrus//hooks/test:go_default_library", diff --git a/beacon-chain/node/node_test.go b/beacon-chain/node/node_test.go index 12c360292a..2c78db813e 100644 --- a/beacon-chain/node/node_test.go +++ b/beacon-chain/node/node_test.go @@ -1,18 +1,15 @@ package node import ( - "crypto/rand" "flag" "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "testing" statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state" "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" logTest "github.com/sirupsen/logrus/hooks/test" @@ -26,8 +23,7 @@ var _ statefeed.Notifier = (*BeaconNode)(nil) func TestNodeClose_OK(t *testing.T) { hook := logTest.NewGlobal() - tmp := fmt.Sprintf("%s/datadirtest2", testutil.TempDir()) - require.NoError(t, os.RemoveAll(tmp)) + tmp := fmt.Sprintf("%s/datadirtest2", t.TempDir()) app := cli.App{} set := flag.NewFlagSet("test", 0) @@ -49,11 +45,8 @@ func TestNodeClose_OK(t *testing.T) { } func TestBootStrapNodeFile(t *testing.T) { - file, err := ioutil.TempFile(testutil.TempDir(), "bootstrapFile") + file, err := ioutil.TempFile(t.TempDir(), "bootstrapFile") require.NoError(t, err) - defer func() { - assert.NoError(t, os.Remove(file.Name())) - }() sampleNode0 := "- enr:-Ku4QMKVC_MowDsmEa20d5uGjrChI0h8_KsKXDmgVQbIbngZV0i" + "dV6_RL7fEtZGo-kTNZ5o7_EJI_vCPJ6scrhwX0Z4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD" + @@ -74,10 +67,7 @@ func TestBootStrapNodeFile(t *testing.T) { func TestClearDB(t *testing.T) { hook := logTest.NewGlobal() - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random number for file path") - tmp := filepath.Join(testutil.TempDir(), fmt.Sprintf("datadirtest%d", randPath)) - require.NoError(t, os.RemoveAll(tmp)) + tmp := filepath.Join(t.TempDir(), "datadirtest") app := cli.App{} set := flag.NewFlagSet("test", 0) @@ -85,7 +75,7 @@ func TestClearDB(t *testing.T) { set.Bool(cmd.ForceClearDB.Name, true, "force clear db") context := cli.NewContext(&app, set, nil) - _, err = NewBeaconNode(context) + _, err := NewBeaconNode(context) require.NoError(t, err) require.LogsContain(t, hook, "Removing database") diff --git a/beacon-chain/p2p/discovery_test.go b/beacon-chain/p2p/discovery_test.go index 0cf4248ff3..957751a7e6 100644 --- a/beacon-chain/p2p/discovery_test.go +++ b/beacon-chain/p2p/discovery_test.go @@ -20,7 +20,6 @@ import ( statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/iputils" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" logTest "github.com/sirupsen/logrus/hooks/test" @@ -36,7 +35,7 @@ func createAddrAndPrivKey(t *testing.T) (net.IP, *ecdsa.PrivateKey) { ip, err := iputils.ExternalIPv4() require.NoError(t, err, "Could not get ip") ipAddr := net.ParseIP(ip) - temp := testutil.TempDir() + temp := t.TempDir() randNum := rand.Int() tempPath := path.Join(temp, strconv.Itoa(randNum)) require.NoError(t, os.Mkdir(tempPath, 0700)) diff --git a/beacon-chain/p2p/fork_test.go b/beacon-chain/p2p/fork_test.go index bd4a44ad5c..7d8242e972 100644 --- a/beacon-chain/p2p/fork_test.go +++ b/beacon-chain/p2p/fork_test.go @@ -20,7 +20,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/p2putils" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/sirupsen/logrus" @@ -234,7 +233,7 @@ func TestDiscv5_AddRetrieveForkEntryENR(t *testing.T) { forkEntry := enr.WithEntry(eth2ENRKey, enc) // In epoch 1 of current time, the fork version should be // {0, 0, 0, 1} according to the configuration override above. - temp := testutil.TempDir() + temp := t.TempDir() randNum := rand.Int() tempPath := path.Join(temp, strconv.Itoa(randNum)) require.NoError(t, os.Mkdir(tempPath, 0700)) @@ -260,7 +259,7 @@ func TestDiscv5_AddRetrieveForkEntryENR(t *testing.T) { } func TestAddForkEntry_Genesis(t *testing.T) { - temp := testutil.TempDir() + temp := t.TempDir() randNum := rand.Int() tempPath := path.Join(temp, strconv.Itoa(randNum)) require.NoError(t, os.Mkdir(tempPath, 0700)) diff --git a/beacon-chain/p2p/options_test.go b/beacon-chain/p2p/options_test.go index 56f30f5be1..e1ab2ad569 100644 --- a/beacon-chain/p2p/options_test.go +++ b/beacon-chain/p2p/options_test.go @@ -6,7 +6,6 @@ import ( "encoding/hex" "io/ioutil" "net" - "os" "testing" gethCrypto "github.com/ethereum/go-ethereum/crypto" @@ -14,17 +13,12 @@ import ( "github.com/ethereum/go-ethereum/p2p/enr" "github.com/libp2p/go-libp2p-core/crypto" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" - "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestPrivateKeyLoading(t *testing.T) { - file, err := ioutil.TempFile(testutil.TempDir(), "key") + file, err := ioutil.TempFile(t.TempDir(), "key") require.NoError(t, err) - defer func() { - assert.NoError(t, os.Remove(file.Name())) - }() key, _, err := crypto.GenerateSecp256k1Key(rand.Reader) require.NoError(t, err, "Could not generate key") raw, err := key.Raw() diff --git a/shared/fileutil/BUILD.bazel b/shared/fileutil/BUILD.bazel index b0b014e8b5..4ffb85ab02 100644 --- a/shared/fileutil/BUILD.bazel +++ b/shared/fileutil/BUILD.bazel @@ -19,7 +19,6 @@ go_test( deps = [ ":go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", ], diff --git a/shared/fileutil/fileutil_test.go b/shared/fileutil/fileutil_test.go index b5a7bfcafd..b242520a7e 100644 --- a/shared/fileutil/fileutil_test.go +++ b/shared/fileutil/fileutil_test.go @@ -26,7 +26,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -49,31 +48,22 @@ func TestPathExpansion(t *testing.T) { } func TestMkdirAll_AlreadyExists_WrongPermissions(t *testing.T) { - dirName := testutil.TempDir() + "somedir" + dirName := t.TempDir() + "somedir" err := os.MkdirAll(dirName, os.ModePerm) require.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() err = fileutil.MkdirAll(dirName) assert.ErrorContains(t, "already exists without proper 0700 permissions", err) } func TestMkdirAll_AlreadyExists_OK(t *testing.T) { - dirName := testutil.TempDir() + "somedir" + dirName := t.TempDir() + "somedir" err := os.MkdirAll(dirName, params.BeaconIoConfig().ReadWriteExecutePermissions) require.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() assert.NoError(t, fileutil.MkdirAll(dirName)) } func TestMkdirAll_OK(t *testing.T) { - dirName := testutil.TempDir() + "somedir" - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() + dirName := t.TempDir() + "somedir" err := fileutil.MkdirAll(dirName) assert.NoError(t, err) exists, err := fileutil.HasDir(dirName) @@ -82,12 +72,9 @@ func TestMkdirAll_OK(t *testing.T) { } func TestWriteFile_AlreadyExists_WrongPermissions(t *testing.T) { - dirName := testutil.TempDir() + "somedir" + dirName := t.TempDir() + "somedir" err := os.MkdirAll(dirName, os.ModePerm) require.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() someFileName := filepath.Join(dirName, "somefile.txt") require.NoError(t, ioutil.WriteFile(someFileName, []byte("hi"), os.ModePerm)) err = fileutil.WriteFile(someFileName, []byte("hi")) @@ -95,24 +82,18 @@ func TestWriteFile_AlreadyExists_WrongPermissions(t *testing.T) { } func TestWriteFile_AlreadyExists_OK(t *testing.T) { - dirName := testutil.TempDir() + "somedir" + dirName := t.TempDir() + "somedir" err := os.MkdirAll(dirName, os.ModePerm) require.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() someFileName := filepath.Join(dirName, "somefile.txt") require.NoError(t, ioutil.WriteFile(someFileName, []byte("hi"), params.BeaconIoConfig().ReadWritePermissions)) assert.NoError(t, fileutil.WriteFile(someFileName, []byte("hi"))) } func TestWriteFile_OK(t *testing.T) { - dirName := testutil.TempDir() + "somedir" + dirName := t.TempDir() + "somedir" err := os.MkdirAll(dirName, os.ModePerm) require.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(dirName)) - }() someFileName := filepath.Join(dirName, "somefile.txt") require.NoError(t, fileutil.WriteFile(someFileName, []byte("hi"))) exists := fileutil.FileExists(someFileName) @@ -120,12 +101,9 @@ func TestWriteFile_OK(t *testing.T) { } func TestCopyFile(t *testing.T) { - fName := testutil.TempDir() + "testfile" + fName := t.TempDir() + "testfile" err := ioutil.WriteFile(fName, []byte{1, 2, 3}, params.BeaconIoConfig().ReadWritePermissions) require.NoError(t, err) - defer func() { - assert.NoError(t, os.Remove(fName)) - }() err = fileutil.CopyFile(fName, fName+"copy") assert.NoError(t, err) diff --git a/shared/keystore/BUILD.bazel b/shared/keystore/BUILD.bazel index 8fa9999ace..9c481d2cd3 100644 --- a/shared/keystore/BUILD.bazel +++ b/shared/keystore/BUILD.bazel @@ -35,7 +35,6 @@ go_test( deps = [ "//shared/bls:go_default_library", "//shared/bytesutil:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_pborman_uuid//:go_default_library", diff --git a/shared/keystore/key_test.go b/shared/keystore/key_test.go index ea696d384e..31907da47f 100644 --- a/shared/keystore/key_test.go +++ b/shared/keystore/key_test.go @@ -3,6 +3,7 @@ package keystore import ( "bytes" "io/ioutil" + "path" "testing" "github.com/pborman/uuid" @@ -35,10 +36,8 @@ func TestMarshalAndUnmarshal(t *testing.T) { } func TestStoreRandomKey(t *testing.T) { - tempDir, teardown := setupTempKeystoreDir(t) - defer teardown() ks := &Keystore{ - keysDirPath: tempDir, + keysDirPath: path.Join(t.TempDir(), "keystore"), scryptN: LightScryptN, scryptP: LightScryptP, } @@ -60,9 +59,7 @@ func TestNewKeyFromBLS(t *testing.T) { } func TestWriteFile(t *testing.T) { - tempDir, teardown := setupTempKeystoreDir(t) - defer teardown() - + tempDir := path.Join(t.TempDir(), "keystore", "file") testKeystore := []byte{'t', 'e', 's', 't'} err := writeKeyFile(tempDir, testKeystore) diff --git a/shared/keystore/keystore_test.go b/shared/keystore/keystore_test.go index 35e955cfdc..e6b4da8c0b 100644 --- a/shared/keystore/keystore_test.go +++ b/shared/keystore/keystore_test.go @@ -2,9 +2,6 @@ package keystore import ( "bytes" - "crypto/rand" - "fmt" - "math/big" "os" "path" "testing" @@ -12,14 +9,12 @@ import ( "github.com/pborman/uuid" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestStoreAndGetKey(t *testing.T) { - tempDir, teardown := setupTempKeystoreDir(t) - defer teardown() + tempDir := path.Join(t.TempDir(), "keystore", "file") ks := &Keystore{ keysDirPath: tempDir, scryptN: LightScryptN, @@ -36,8 +31,7 @@ func TestStoreAndGetKey(t *testing.T) { } func TestStoreAndGetKeys(t *testing.T) { - tempDir, teardown := setupTempKeystoreDir(t) - defer teardown() + tempDir := path.Join(t.TempDir(), "keystore") ks := &Keystore{ keysDirPath: tempDir, scryptN: LightScryptN, @@ -82,8 +76,7 @@ func TestEncryptDecryptKey(t *testing.T) { } func TestGetSymlinkedKeys(t *testing.T) { - tempDir, teardown := setupTempKeystoreDir(t) - defer teardown() + tempDir := path.Join(t.TempDir(), "keystore") ks := &Keystore{ scryptN: LightScryptN, scryptP: LightScryptP, @@ -100,14 +93,3 @@ func TestGetSymlinkedKeys(t *testing.T) { require.Equal(t, true, bytes.Equal(s.SecretKey.Marshal(), key.SecretKey.Marshal())) } } - -// setupTempKeystoreDir creates temporary directory for storing keystore files. -func setupTempKeystoreDir(t *testing.T) (string, func()) { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err) - tempDir := path.Join(testutil.TempDir(), fmt.Sprintf("%d", randPath), "keystore") - - return tempDir, func() { - assert.NoError(t, os.RemoveAll(tempDir)) - } -} diff --git a/shared/testutil/BUILD.bazel b/shared/testutil/BUILD.bazel index 566cac8def..455a40c364 100644 --- a/shared/testutil/BUILD.bazel +++ b/shared/testutil/BUILD.bazel @@ -10,7 +10,6 @@ go_library( "helpers.go", "spectest.go", "state.go", - "tempdir.go", "wait_timeout.go", ], importpath = "github.com/prysmaticlabs/prysm/shared/testutil", diff --git a/shared/testutil/tempdir.go b/shared/testutil/tempdir.go deleted file mode 100644 index f8e17f8968..0000000000 --- a/shared/testutil/tempdir.go +++ /dev/null @@ -1,16 +0,0 @@ -package testutil - -import ( - "os" -) - -// TempDir returns a directory path for temporary test storage. -func TempDir() string { - d := os.Getenv("TEST_TMPDIR") - - // If the test is not run via bazel, the environment var won't be set. - if d == "" { - return os.TempDir() - } - return d -} diff --git a/slasher/db/kv/BUILD.bazel b/slasher/db/kv/BUILD.bazel index 18e2578b04..e27dc46437 100644 --- a/slasher/db/kv/BUILD.bazel +++ b/slasher/db/kv/BUILD.bazel @@ -58,7 +58,6 @@ go_test( "//proto/slashing:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "//slasher/db/types:go_default_library", diff --git a/slasher/db/kv/kv_test.go b/slasher/db/kv/kv_test.go index e74ce52b2a..a01e5af7ee 100644 --- a/slasher/db/kv/kv_test.go +++ b/slasher/db/kv/kv_test.go @@ -1,15 +1,9 @@ package kv import ( - "crypto/rand" - "fmt" "io/ioutil" - "math/big" - "os" - "path" "testing" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/sirupsen/logrus" ) @@ -22,31 +16,21 @@ func TestMain(m *testing.M) { } func setupDB(t testing.TB) *Store { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") cfg := &Config{} - db, err := NewKVStore(p, cfg) + db, err := NewKVStore(t.TempDir(), cfg) require.NoError(t, err, "Failed to instantiate DB") t.Cleanup(func() { require.NoError(t, db.Close(), "Failed to close database") - require.NoError(t, os.RemoveAll(db.DatabasePath()), "Failed to remove directory") }) return db } func setupDBDiffCacheSize(t testing.TB, cacheSize int) *Store { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") cfg := &Config{SpanCacheSize: cacheSize} - db, err := NewKVStore(p, cfg) + db, err := NewKVStore(t.TempDir(), cfg) require.NoError(t, err, "Failed to instantiate DB") t.Cleanup(func() { require.NoError(t, db.Close(), "Failed to close database") - require.NoError(t, os.RemoveAll(db.DatabasePath()), "Failed to remove directory") }) return db } diff --git a/slasher/db/testing/BUILD.bazel b/slasher/db/testing/BUILD.bazel index 5ceba5e812..b701c744a6 100644 --- a/slasher/db/testing/BUILD.bazel +++ b/slasher/db/testing/BUILD.bazel @@ -8,8 +8,6 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/slasher/db/testing", visibility = ["//slasher:__subpackages__"], deps = [ - "//shared/rand:go_default_library", - "//shared/testutil:go_default_library", "//slasher/db:go_default_library", "//slasher/db/kv:go_default_library", ], @@ -20,7 +18,6 @@ go_test( srcs = ["setup_db_test.go"], embed = [":go_default_library"], deps = [ - "//shared/testutil:go_default_library", "//shared/testutil/require:go_default_library", "//slasher/db:go_default_library", "//slasher/db/kv:go_default_library", diff --git a/slasher/db/testing/setup_db.go b/slasher/db/testing/setup_db.go index dcf321fb7b..474e1ee574 100644 --- a/slasher/db/testing/setup_db.go +++ b/slasher/db/testing/setup_db.go @@ -3,26 +3,16 @@ package testing import ( - "fmt" - "os" - "path" "testing" - "github.com/prysmaticlabs/prysm/shared/rand" - "github.com/prysmaticlabs/prysm/shared/testutil" slasherDB "github.com/prysmaticlabs/prysm/slasher/db" "github.com/prysmaticlabs/prysm/slasher/db/kv" ) // SetupSlasherDB instantiates and returns a SlasherDB instance. func SetupSlasherDB(t testing.TB, spanCacheEnabled bool) *kv.Store { - randPath := rand.NewDeterministicGenerator().Int() - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - if err := os.RemoveAll(p); err != nil { - t.Fatalf("Failed to remove directory: %v", err) - } cfg := &kv.Config{} - db, err := slasherDB.NewDB(p, cfg) + db, err := slasherDB.NewDB(t.TempDir(), cfg) if err != nil { t.Fatalf("Failed to instantiate DB: %v", err) } @@ -31,9 +21,6 @@ func SetupSlasherDB(t testing.TB, spanCacheEnabled bool) *kv.Store { if err := db.Close(); err != nil { t.Fatalf("Failed to close database: %v", err) } - if err := os.RemoveAll(db.DatabasePath()); err != nil { - t.Fatalf("Failed to remove directory: %v", err) - } }) return db } diff --git a/slasher/db/testing/setup_db_test.go b/slasher/db/testing/setup_db_test.go index f020803091..fe5ff3fa65 100644 --- a/slasher/db/testing/setup_db_test.go +++ b/slasher/db/testing/setup_db_test.go @@ -1,14 +1,9 @@ package testing import ( - "crypto/rand" - "fmt" - "math/big" "os" - "path" "testing" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" slasherDB "github.com/prysmaticlabs/prysm/slasher/db" "github.com/prysmaticlabs/prysm/slasher/db/kv" @@ -16,12 +11,8 @@ import ( func TestClearDB(t *testing.T) { // Setting up manually is required, since SetupDB() will also register a teardown procedure. - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - p := path.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") cfg := &kv.Config{} - db, err := slasherDB.NewDB(p, cfg) + db, err := slasherDB.NewDB(t.TempDir(), cfg) require.NoError(t, err, "Failed to instantiate DB") db.EnableSpanCache(false) require.NoError(t, db.ClearDB()) diff --git a/slasher/node/BUILD.bazel b/slasher/node/BUILD.bazel index d5fa1c73bb..cbc8b26c75 100644 --- a/slasher/node/BUILD.bazel +++ b/slasher/node/BUILD.bazel @@ -35,7 +35,6 @@ go_test( embed = [":go_default_library"], deps = [ "//shared/cmd:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_sirupsen_logrus//hooks/test:go_default_library", diff --git a/slasher/node/node_test.go b/slasher/node/node_test.go index 6ee40fb151..e5036e20f4 100644 --- a/slasher/node/node_test.go +++ b/slasher/node/node_test.go @@ -1,17 +1,14 @@ package node import ( - "crypto/rand" "flag" "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "testing" "github.com/prysmaticlabs/prysm/shared/cmd" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/sirupsen/logrus" logTest "github.com/sirupsen/logrus/hooks/test" @@ -29,8 +26,7 @@ func TestMain(m *testing.M) { func TestNodeClose_OK(t *testing.T) { hook := logTest.NewGlobal() - tmp := fmt.Sprintf("%s/datadirtest2", testutil.TempDir()) - require.NoError(t, os.RemoveAll(tmp)) + tmp := fmt.Sprintf("%s/datadirtest2", t.TempDir()) app := cli.App{} set := flag.NewFlagSet("test", 0) @@ -52,10 +48,7 @@ func TestNodeClose_OK(t *testing.T) { func TestClearDB(t *testing.T) { hook := logTest.NewGlobal() - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random number for file path") - tmp := filepath.Join(testutil.TempDir(), fmt.Sprintf("datadirtest%d", randPath)) - require.NoError(t, os.RemoveAll(tmp)) + tmp := filepath.Join(t.TempDir(), "datadirtest") app := cli.App{} set := flag.NewFlagSet("test", 0) diff --git a/tools/keystores/BUILD.bazel b/tools/keystores/BUILD.bazel index 3dfc8499a9..3fb4d3ec6f 100644 --- a/tools/keystores/BUILD.bazel +++ b/tools/keystores/BUILD.bazel @@ -32,7 +32,6 @@ go_test( deps = [ "//shared/bls:go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "//validator/keymanager:go_default_library", diff --git a/tools/keystores/main_test.go b/tools/keystores/main_test.go index 3178c5563c..e5cdb93709 100644 --- a/tools/keystores/main_test.go +++ b/tools/keystores/main_test.go @@ -1,12 +1,10 @@ package main import ( - "crypto/rand" "encoding/json" "flag" "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "strings" @@ -15,7 +13,6 @@ import ( "github.com/google/uuid" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/keymanager" @@ -66,13 +63,8 @@ func createRandomKeystore(t testing.TB, password string) (*keymanager.Keystore, } func setupRandomDir(t testing.TB) string { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err) - randDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath)) + randDir := t.TempDir() require.NoError(t, os.MkdirAll(randDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(randDir), "Failed to remove directory") - }) return randDir } diff --git a/validator/accounts/BUILD.bazel b/validator/accounts/BUILD.bazel index ab116b033f..719873c2aa 100644 --- a/validator/accounts/BUILD.bazel +++ b/validator/accounts/BUILD.bazel @@ -80,7 +80,6 @@ go_test( "//shared/mock:go_default_library", "//shared/params:go_default_library", "//shared/petnames:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "//shared/timeutils:go_default_library", diff --git a/validator/accounts/accounts_backup_test.go b/validator/accounts/accounts_backup_test.go index 1c8059a3ec..48cf7587c8 100644 --- a/validator/accounts/accounts_backup_test.go +++ b/validator/accounts/accounts_backup_test.go @@ -2,12 +2,9 @@ package accounts import ( "archive/zip" - "crypto/rand" "encoding/hex" "encoding/json" - "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "sort" @@ -17,7 +14,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/fileutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts/iface" @@ -31,18 +27,13 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) { password := "Pa$sW0rD0__Fo0xPr" require.NoError(t, ioutil.WriteFile(passwordFilePath, []byte(password), os.ModePerm)) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") // Write a directory where we will backup accounts to. - backupDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "backupDir") + backupDir := filepath.Join(t.TempDir(), "backupDir") require.NoError(t, os.MkdirAll(backupDir, params.BeaconIoConfig().ReadWriteExecutePermissions)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(backupDir), "Failed to remove directory") - }) // Write a password for the accounts we wish to backup to a file. backupPasswordFile := filepath.Join(backupDir, "backuppass.txt") - err = ioutil.WriteFile( + err := ioutil.WriteFile( backupPasswordFile, []byte("Passw0rdz4938%%"), params.BeaconIoConfig().ReadWritePermissions, @@ -144,19 +135,13 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) { func TestBackupAccounts_Noninteractive_Imported(t *testing.T) { walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") // Write a directory where we will import keys from. - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, params.BeaconIoConfig().ReadWriteExecutePermissions)) // Write a directory where we will backup accounts to. - backupDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "backupDir") + backupDir := filepath.Join(t.TempDir(), "backupDir") require.NoError(t, os.MkdirAll(backupDir, params.BeaconIoConfig().ReadWriteExecutePermissions)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(keysDir), "Failed to remove directory") - require.NoError(t, os.RemoveAll(backupDir), "Failed to remove directory") - }) // Create 2 keystore files in the keys directory we can then // import from in our wallet. @@ -168,7 +153,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) { // Write a password for the accounts we wish to backup to a file. backupPasswordFile := filepath.Join(backupDir, "backuppass.txt") - err = ioutil.WriteFile( + err := ioutil.WriteFile( backupPasswordFile, []byte("Passw0rdz4938%%"), params.BeaconIoConfig().ReadWritePermissions, diff --git a/validator/accounts/accounts_delete_test.go b/validator/accounts/accounts_delete_test.go index 877b65f852..68364eca53 100644 --- a/validator/accounts/accounts_delete_test.go +++ b/validator/accounts/accounts_delete_test.go @@ -1,10 +1,7 @@ package accounts import ( - "crypto/rand" "encoding/hex" - "fmt" - "math/big" "os" "path/filepath" "strings" @@ -12,7 +9,6 @@ import ( "time" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts/wallet" @@ -22,10 +18,8 @@ import ( func TestDeleteAccounts_Noninteractive(t *testing.T) { walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") // Write a directory where we will import keys from. - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) // Create 3 keystore files in the keys directory we can then diff --git a/validator/accounts/accounts_exit_test.go b/validator/accounts/accounts_exit_test.go index 9b796a814a..508df32d64 100644 --- a/validator/accounts/accounts_exit_test.go +++ b/validator/accounts/accounts_exit_test.go @@ -2,9 +2,6 @@ package accounts import ( "bytes" - "crypto/rand" - "fmt" - "math/big" "os" "path/filepath" "testing" @@ -14,7 +11,6 @@ import ( "github.com/golang/mock/gomock" ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1" "github.com/prysmaticlabs/prysm/shared/mock" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts/wallet" @@ -50,10 +46,8 @@ func TestExitAccountsCli_Ok(t *testing.T) { Return(ðpb.ProposeExitResponse{}, nil) walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") // Write a directory where we will import keys from. - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) // Create keystore file in the keys directory we can then import from in our wallet. @@ -72,7 +66,7 @@ func TestExitAccountsCli_Ok(t *testing.T) { // Flag required for ExitAccounts to work. voluntaryExitPublicKeys: keystore.Pubkey, }) - _, err = CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ + _, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ WalletCfg: &wallet.Config{ WalletDir: walletDir, KeymanagerKind: keymanager.Imported, diff --git a/validator/accounts/accounts_import_test.go b/validator/accounts/accounts_import_test.go index f37e49bca3..033a2f26c5 100644 --- a/validator/accounts/accounts_import_test.go +++ b/validator/accounts/accounts_import_test.go @@ -16,7 +16,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/shared/timeutils" @@ -30,13 +29,8 @@ import ( func TestImport_Noninteractive(t *testing.T) { imported.ResetCaches() walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(keysDir), "Failed to remove directory") - }) cliCtx := setupWalletCtx(t, &testWalletConfig{ walletDir: walletDir, @@ -93,13 +87,8 @@ func TestImport_Noninteractive(t *testing.T) { func TestImport_Noninteractive_RandomName(t *testing.T) { imported.ResetCaches() walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(keysDir), "Failed to remove directory") - }) cliCtx := setupWalletCtx(t, &testWalletConfig{ walletDir: walletDir, @@ -156,13 +145,8 @@ func TestImport_Noninteractive_RandomName(t *testing.T) { func TestImport_Noninteractive_Filepath(t *testing.T) { imported.ResetCaches() walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - keysDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "keysDir") + keysDir := filepath.Join(t.TempDir(), "keysDir") require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(keysDir), "Failed to remove directory") - }) _, keystorePath := createKeystore(t, keysDir) cliCtx := setupWalletCtx(t, &testWalletConfig{ @@ -276,13 +260,8 @@ func TestImport_SortByDerivationPath(t *testing.T) { func Test_importPrivateKeyAsAccount(t *testing.T) { walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - privKeyDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "privKeys") + privKeyDir := filepath.Join(t.TempDir(), "privKeys") require.NoError(t, os.MkdirAll(privKeyDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(privKeyDir), "Failed to remove directory") - }) privKeyFileName := filepath.Join(privKeyDir, "privatekey.txt") // We create a new private key and save it to a file on disk. diff --git a/validator/accounts/wallet/BUILD.bazel b/validator/accounts/wallet/BUILD.bazel index c1e5b968c3..bb4a06df4b 100644 --- a/validator/accounts/wallet/BUILD.bazel +++ b/validator/accounts/wallet/BUILD.bazel @@ -29,7 +29,6 @@ go_test( deps = [ ":go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/assertions:go_default_library", "//shared/testutil/require:go_default_library", diff --git a/validator/accounts/wallet/wallet_test.go b/validator/accounts/wallet/wallet_test.go index f6ab2adfd5..b3d00ade96 100644 --- a/validator/accounts/wallet/wallet_test.go +++ b/validator/accounts/wallet/wallet_test.go @@ -1,18 +1,14 @@ package wallet_test import ( - "crypto/rand" "flag" - "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "strconv" "testing" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/assertions" "github.com/prysmaticlabs/prysm/shared/testutil/require" @@ -91,31 +87,17 @@ func setupWalletCtx( } func setupWalletAndPasswordsDir(t testing.TB) (string, string, string) { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - walletDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "wallet") - require.NoError(t, os.RemoveAll(walletDir), "Failed to remove directory") - passwordsDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "passwords") - require.NoError(t, os.RemoveAll(passwordsDir), "Failed to remove directory") - passwordFileDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "passwordFile") + walletDir := filepath.Join(t.TempDir(), "wallet") + passwordsDir := filepath.Join(t.TempDir(), "passwords") + passwordFileDir := filepath.Join(t.TempDir(), "passwordFile") require.NoError(t, os.MkdirAll(passwordFileDir, os.ModePerm)) passwordFilePath := filepath.Join(passwordFileDir, passwordFileName) require.NoError(t, ioutil.WriteFile(passwordFilePath, []byte(password), os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(walletDir), "Failed to remove directory") - require.NoError(t, os.RemoveAll(passwordFileDir), "Failed to remove directory") - require.NoError(t, os.RemoveAll(passwordsDir), "Failed to remove directory") - }) return walletDir, passwordsDir, passwordFilePath } func Test_Exists_RandomFiles(t *testing.T) { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - path := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "wallet") - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(path), "Failed to remove directory") - }) + path := filepath.Join(t.TempDir(), "wallet") exists, err := wallet.Exists(path) require.Equal(t, false, exists) @@ -128,16 +110,11 @@ func Test_Exists_RandomFiles(t *testing.T) { } func Test_IsValid_RandomFiles(t *testing.T) { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - path := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "wallet") + path := filepath.Join(t.TempDir(), "wallet") valid, err := wallet.IsValid(path) require.NoError(t, err) require.Equal(t, false, valid) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(path), "Failed to remove directory") - }) require.NoError(t, os.MkdirAll(path, params.BeaconIoConfig().ReadWriteExecutePermissions), "Failed to create directory") valid, err = wallet.IsValid(path) diff --git a/validator/accounts/wallet_create_test.go b/validator/accounts/wallet_create_test.go index f2af243c80..366fe011f2 100644 --- a/validator/accounts/wallet_create_test.go +++ b/validator/accounts/wallet_create_test.go @@ -2,12 +2,9 @@ package accounts import ( "context" - "crypto/rand" "encoding/json" "flag" - "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "strconv" @@ -15,7 +12,6 @@ import ( "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts/wallet" @@ -101,21 +97,12 @@ func setupWalletCtx( } func setupWalletAndPasswordsDir(t testing.TB) (string, string, string) { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - walletDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "wallet") - require.NoError(t, os.RemoveAll(walletDir), "Failed to remove directory") - passwordsDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "passwords") - require.NoError(t, os.RemoveAll(passwordsDir), "Failed to remove directory") - passwordFileDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "passwordFile") + walletDir := filepath.Join(t.TempDir(), "wallet") + passwordsDir := filepath.Join(t.TempDir(), "passwords") + passwordFileDir := filepath.Join(t.TempDir(), "passwordFile") require.NoError(t, os.MkdirAll(passwordFileDir, params.BeaconIoConfig().ReadWriteExecutePermissions)) passwordFilePath := filepath.Join(passwordFileDir, passwordFileName) require.NoError(t, ioutil.WriteFile(passwordFilePath, []byte(password), os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(walletDir), "Failed to remove directory") - require.NoError(t, os.RemoveAll(passwordFileDir), "Failed to remove directory") - require.NoError(t, os.RemoveAll(passwordsDir), "Failed to remove directory") - }) return walletDir, passwordsDir, passwordFilePath } diff --git a/validator/accounts/wallet_recover_test.go b/validator/accounts/wallet_recover_test.go index b9af04fe7a..28b71842c8 100644 --- a/validator/accounts/wallet_recover_test.go +++ b/validator/accounts/wallet_recover_test.go @@ -9,7 +9,6 @@ import ( "strconv" "testing" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts/iface" @@ -28,19 +27,13 @@ type recoverCfgStruct struct { } func setupRecoverCfg(t *testing.T) *recoverCfgStruct { - testDir := testutil.TempDir() + testDir := t.TempDir() walletDir := filepath.Join(testDir, walletDirName) passwordFilePath := filepath.Join(testDir, passwordFileName) require.NoError(t, ioutil.WriteFile(passwordFilePath, []byte(password), os.ModePerm)) mnemonicFilePath := filepath.Join(testDir, mnemonicFileName) require.NoError(t, ioutil.WriteFile(mnemonicFilePath, []byte(mnemonic), os.ModePerm)) - t.Cleanup(func() { - assert.NoError(t, os.RemoveAll(walletDir)) - assert.NoError(t, os.Remove(passwordFilePath)) - assert.NoError(t, os.Remove(mnemonicFilePath)) - }) - return &recoverCfgStruct{ walletDir: walletDir, passwordFilePath: passwordFilePath, diff --git a/validator/client/service_test.go b/validator/client/service_test.go index 1a9c156e2b..8381cf5ead 100644 --- a/validator/client/service_test.go +++ b/validator/client/service_test.go @@ -2,12 +2,10 @@ package client import ( "context" - "os" "testing" "time" "github.com/prysmaticlabs/prysm/shared" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" logTest "github.com/sirupsen/logrus/hooks/test" @@ -15,17 +13,6 @@ import ( var _ shared.Service = (*ValidatorService)(nil) -func TestMain(m *testing.M) { - dir := testutil.TempDir() + "/keystore1" - cleanup := func() { - if err := os.RemoveAll(dir); err != nil { - log.WithError(err).Debug("Cannot remove keystore folder") - } - } - defer cleanup() - m.Run() -} - func TestStop_CancelsContext(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) vs := &ValidatorService{ diff --git a/validator/db/kv/BUILD.bazel b/validator/db/kv/BUILD.bazel index d2b935654a..c4c7a01f39 100644 --- a/validator/db/kv/BUILD.bazel +++ b/validator/db/kv/BUILD.bazel @@ -46,8 +46,6 @@ go_test( "//proto/slashing:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", - "//shared/rand:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_pkg_errors//:go_default_library", diff --git a/validator/db/kv/db_test.go b/validator/db/kv/db_test.go index 9ea84fb7ab..d0905d94dd 100644 --- a/validator/db/kv/db_test.go +++ b/validator/db/kv/db_test.go @@ -1,21 +1,14 @@ package kv import ( - "fmt" - "os" - "path/filepath" "testing" - "github.com/prysmaticlabs/prysm/shared/rand" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) // setupDB instantiates and returns a DB instance for the validator client. func setupDB(t testing.TB, pubkeys [][48]byte) *Store { - randPath := rand.NewDeterministicGenerator().Int() - p := filepath.Join(tempdir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") - db, err := NewKVStore(p, pubkeys) + db, err := NewKVStore(t.TempDir(), pubkeys) require.NoError(t, err, "Failed to instantiate DB") err = db.OldUpdatePublicKeysBuckets(pubkeys) require.NoError(t, err, "Failed to create old buckets for public keys") @@ -25,14 +18,3 @@ func setupDB(t testing.TB, pubkeys [][48]byte) *Store { }) return db } - -// tempdir returns a directory path for temporary test storage. -func tempdir() string { - d := os.Getenv("TEST_TMPDIR") - - // If the test is not run via bazel, the environment var won't be set. - if d == "" { - return os.TempDir() - } - return d -} diff --git a/validator/db/kv/manage_test.go b/validator/db/kv/manage_test.go index dc1f0f9dd7..2fa2d9116f 100644 --- a/validator/db/kv/manage_test.go +++ b/validator/db/kv/manage_test.go @@ -3,15 +3,12 @@ package kv import ( "context" "encoding/hex" - "os" "path/filepath" "testing" "github.com/pkg/errors" slashpb "github.com/prysmaticlabs/prysm/proto/slashing" "github.com/prysmaticlabs/prysm/shared/bytesutil" - "github.com/prysmaticlabs/prysm/shared/testutil" - "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" bolt "go.etcd.io/bbolt" ) @@ -50,10 +47,7 @@ func TestMerge(t *testing.T) { Attestations: mergedAttestations, } - targetDirectory := testutil.TempDir() + "/target" - t.Cleanup(func() { - assert.NoError(t, os.RemoveAll(targetDirectory), "Could not remove target directory") - }) + targetDirectory := t.TempDir() + "/target" err = Merge(context.Background(), []*Store{firstStore, secondStore}, targetDirectory) require.NoError(t, err, "Merging failed") @@ -77,10 +71,7 @@ func TestSplit(t *testing.T) { storeHistory2, err := prepareStore(sourceStore, [][48]byte{pubKey2}) require.NoError(t, err) - targetDirectory := testutil.TempDir() + "/target" - t.Cleanup(func() { - assert.NoError(t, os.RemoveAll(targetDirectory), "Could not remove target directory") - }) + targetDirectory := t.TempDir() + "/target" require.NoError(t, Split(context.Background(), sourceStore, targetDirectory), "Splitting failed") @@ -126,10 +117,7 @@ func TestSplit_AttestationsWithoutMatchingProposalsAreSplit(t *testing.T) { attestationHistory, err := prepareStoreAttestations(sourceStore, [][48]byte{pubKey1, pubKey2}) require.NoError(t, err) - targetDirectory := testutil.TempDir() + "/target" - t.Cleanup(func() { - assert.NoError(t, os.RemoveAll(targetDirectory), "Could not remove target directory") - }) + targetDirectory := t.TempDir() + "/target" require.NoError(t, Split(context.Background(), sourceStore, targetDirectory), "Splitting failed") diff --git a/validator/db/testing/BUILD.bazel b/validator/db/testing/BUILD.bazel index 8d800b2271..a29bb87ddb 100644 --- a/validator/db/testing/BUILD.bazel +++ b/validator/db/testing/BUILD.bazel @@ -7,7 +7,6 @@ go_library( importpath = "github.com/prysmaticlabs/prysm/validator/db/testing", visibility = ["//validator:__subpackages__"], deps = [ - "//shared/rand:go_default_library", "//validator/db:go_default_library", "//validator/db/kv:go_default_library", ], diff --git a/validator/db/testing/setup_db.go b/validator/db/testing/setup_db.go index 0c04f5770e..34ba7b3ae8 100644 --- a/validator/db/testing/setup_db.go +++ b/validator/db/testing/setup_db.go @@ -1,24 +1,15 @@ package testing import ( - "fmt" - "os" - "path/filepath" "testing" - "github.com/prysmaticlabs/prysm/shared/rand" "github.com/prysmaticlabs/prysm/validator/db" "github.com/prysmaticlabs/prysm/validator/db/kv" ) // SetupDB instantiates and returns a DB instance for the validator client. func SetupDB(t testing.TB, pubkeys [][48]byte) db.Database { - randPath := rand.NewDeterministicGenerator().Int() - p := filepath.Join(TempDir(), fmt.Sprintf("/%d", randPath)) - if err := os.RemoveAll(p); err != nil { - t.Fatalf("Failed to remove directory: %v", err) - } - db, err := kv.NewKVStore(p, pubkeys) + db, err := kv.NewKVStore(t.TempDir(), pubkeys) if err != nil { t.Fatalf("Failed to instantiate DB: %v", err) } @@ -32,14 +23,3 @@ func SetupDB(t testing.TB, pubkeys [][48]byte) db.Database { }) return db } - -// TempDir returns a directory path for temporary test storage. -func TempDir() string { - d := os.Getenv("TEST_TMPDIR") - - // If the test is not run via bazel, the environment var won't be set. - if d == "" { - return os.TempDir() - } - return d -} diff --git a/validator/db/testing/setup_db_test.go b/validator/db/testing/setup_db_test.go index b35f60a68e..0ecd086306 100644 --- a/validator/db/testing/setup_db_test.go +++ b/validator/db/testing/setup_db_test.go @@ -1,9 +1,6 @@ package testing import ( - "crypto/rand" - "fmt" - "math/big" "os" "path/filepath" "testing" @@ -14,11 +11,7 @@ import ( func TestClearDB(t *testing.T) { // Setting up manually is required, since SetupDB() will also register a teardown procedure. - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - p := filepath.Join(TempDir(), fmt.Sprintf("/%d", randPath)) - require.NoError(t, os.RemoveAll(p), "Failed to remove directory") - testDB, err := kv.NewKVStore(p, [][48]byte{}) + testDB, err := kv.NewKVStore(t.TempDir(), [][48]byte{}) require.NoError(t, err, "Failed to instantiate DB") require.NoError(t, testDB.ClearDB()) diff --git a/validator/keymanager/remote/BUILD.bazel b/validator/keymanager/remote/BUILD.bazel index a80eb4aab6..7d681c9221 100644 --- a/validator/keymanager/remote/BUILD.bazel +++ b/validator/keymanager/remote/BUILD.bazel @@ -34,7 +34,6 @@ go_test( "//shared/bls:go_default_library", "//shared/mock:go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "@com_github_golang_mock//gomock:go_default_library", diff --git a/validator/keymanager/remote/keymanager_test.go b/validator/keymanager/remote/keymanager_test.go index 467e7d751c..32e4000c71 100644 --- a/validator/keymanager/remote/keymanager_test.go +++ b/validator/keymanager/remote/keymanager_test.go @@ -14,7 +14,6 @@ import ( "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/mock" "github.com/prysmaticlabs/prysm/shared/params" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" ) @@ -150,7 +149,7 @@ func TestNewRemoteKeymanager(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { if test.caCert != "" || test.clientCert != "" || test.clientKey != "" { - dir := fmt.Sprintf("%s/%s", testutil.TempDir(), test.name) + dir := fmt.Sprintf("%s/%s", t.TempDir(), test.name) require.NoError(t, os.MkdirAll(dir, 0777)) if test.caCert != "" { caCertPath := fmt.Sprintf("%s/ca.crt", dir) diff --git a/validator/node/BUILD.bazel b/validator/node/BUILD.bazel index fc18eb823b..ad94fae93b 100644 --- a/validator/node/BUILD.bazel +++ b/validator/node/BUILD.bazel @@ -7,8 +7,6 @@ go_test( srcs = ["node_test.go"], embed = [":go_default_library"], deps = [ - "//shared/testutil:go_default_library", - "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "//validator/accounts:go_default_library", "//validator/accounts/wallet:go_default_library", diff --git a/validator/node/node_test.go b/validator/node/node_test.go index 647316c7a9..54496d21f1 100644 --- a/validator/node/node_test.go +++ b/validator/node/node_test.go @@ -1,17 +1,12 @@ package node import ( - "crypto/rand" "flag" - "fmt" "io/ioutil" - "math/big" "os" "path/filepath" "testing" - "github.com/prysmaticlabs/prysm/shared/testutil" - "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts" "github.com/prysmaticlabs/prysm/validator/accounts/wallet" @@ -25,9 +20,9 @@ import ( func TestNode_Builds(t *testing.T) { app := cli.App{} set := flag.NewFlagSet("test", 0) - set.String("datadir", testutil.TempDir()+"/datadir", "the node data directory") - dir := testutil.TempDir() + "/walletpath" - passwordDir := testutil.TempDir() + "/password" + set.String("datadir", t.TempDir()+"/datadir", "the node data directory") + dir := t.TempDir() + "/walletpath" + passwordDir := t.TempDir() + "/password" require.NoError(t, os.MkdirAll(passwordDir, os.ModePerm)) passwordFile := filepath.Join(passwordDir, "password.txt") walletPassword := "$$Passw0rdz2$$" @@ -36,11 +31,6 @@ func TestNode_Builds(t *testing.T) { []byte(walletPassword), os.ModePerm, )) - defer func() { - assert.NoError(t, os.RemoveAll(dir)) - assert.NoError(t, os.RemoveAll(passwordDir)) - assert.NoError(t, os.RemoveAll(testutil.TempDir()+"/datadir")) - }() set.String("wallet-dir", dir, "path to wallet") set.String("wallet-password-file", passwordFile, "path to wallet password") set.String("keymanager-kind", "imported", "keymanager kind") @@ -65,11 +55,7 @@ func TestNode_Builds(t *testing.T) { // TestClearDB tests clearing the database func TestClearDB(t *testing.T) { hook := logTest.NewGlobal() - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random number for file path") - tmp := filepath.Join(testutil.TempDir(), fmt.Sprintf("datadirtest%d", randPath)) - require.NoError(t, os.RemoveAll(tmp)) - err = clearDB(tmp, true) - require.NoError(t, err) + tmp := filepath.Join(t.TempDir(), "datadirtest") + require.NoError(t, clearDB(tmp, true)) require.LogsContain(t, hook, "Removing database") } diff --git a/validator/rpc/BUILD.bazel b/validator/rpc/BUILD.bazel index 44d0245687..84828f29b3 100644 --- a/validator/rpc/BUILD.bazel +++ b/validator/rpc/BUILD.bazel @@ -70,7 +70,6 @@ go_test( "//shared/event:go_default_library", "//shared/fileutil:go_default_library", "//shared/params:go_default_library", - "//shared/testutil:go_default_library", "//shared/testutil/assert:go_default_library", "//shared/testutil/require:go_default_library", "//shared/timeutils:go_default_library", diff --git a/validator/rpc/auth_test.go b/validator/rpc/auth_test.go index 6bc4573cd9..932dd224ca 100644 --- a/validator/rpc/auth_test.go +++ b/validator/rpc/auth_test.go @@ -2,9 +2,6 @@ package rpc import ( "context" - "crypto/rand" - "fmt" - "math/big" "os" "path/filepath" "testing" @@ -14,7 +11,6 @@ import ( pb "github.com/prysmaticlabs/prysm/proto/validator/accounts/v2" "github.com/prysmaticlabs/prysm/shared/event" "github.com/prysmaticlabs/prysm/shared/fileutil" - "github.com/prysmaticlabs/prysm/shared/testutil" "github.com/prysmaticlabs/prysm/shared/testutil/assert" "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/validator/accounts" @@ -24,13 +20,8 @@ import ( ) func setupWalletDir(t testing.TB) string { - randPath, err := rand.Int(rand.Reader, big.NewInt(1000000)) - require.NoError(t, err, "Could not generate random file path") - walletDir := filepath.Join(testutil.TempDir(), fmt.Sprintf("/%d", randPath), "wallet") + walletDir := filepath.Join(t.TempDir(), "wallet") require.NoError(t, os.MkdirAll(walletDir, os.ModePerm)) - t.Cleanup(func() { - require.NoError(t, os.RemoveAll(walletDir), "Failed to remove directory") - }) return walletDir }