mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 06:36:43 +00:00
use unlock
This commit is contained in:
parent
4262099333
commit
c733913cdf
1 changed files with 28 additions and 52 deletions
|
|
@ -71,10 +71,10 @@ func TestLag(t *testing.T) {
|
|||
case *UnexpectedCodeError:
|
||||
fmt.Print(RED_X)
|
||||
cancel()
|
||||
t.Errorf("Worker %d failed on task %d with: %s", workerID, taskID, err.Error())
|
||||
default:
|
||||
fmt.Print(YELLOW_S, err)
|
||||
fmt.Print(YELLOW_S)
|
||||
}
|
||||
t.Errorf("Worker %d failed on task %d with: %s", workerID, taskID, err.Error())
|
||||
} else {
|
||||
fmt.Print(GREEN_DOT)
|
||||
}
|
||||
|
|
@ -108,6 +108,30 @@ func (task *task) cleanup(t *testing.T) {
|
|||
func (task *task) run(t *testing.T) (returnErr error) {
|
||||
datadir := t.TempDir()
|
||||
port := basePort + task.workerID*100 + task.taskID
|
||||
password := "123456"
|
||||
pwdFilePath := filepath.Join(datadir, "password.txt")
|
||||
pwdFile, err := os.Create(pwdFilePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer os.Remove(pwdFilePath)
|
||||
if _, err := pwdFile.WriteString(password + "\n"); err != nil {
|
||||
return err
|
||||
}
|
||||
pwdFile.Close()
|
||||
ks := keystore.NewKeyStore(filepath.Join(datadir, "keystore"), keystore.LightScryptN, keystore.LightScryptP)
|
||||
keyfileAcct, err := ks.NewAccount(password)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
keyJson, err := os.ReadFile(keyfileAcct.URL.Path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key, err := keystore.DecryptKey(keyJson, password)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
args := []string{
|
||||
"--datadir",
|
||||
datadir, // passing in a `datadir` is required to reproduce
|
||||
|
|
@ -121,29 +145,10 @@ func (task *task) run(t *testing.T) (returnErr error) {
|
|||
"admin,eth,web3,debug",
|
||||
"--ipcpath",
|
||||
filepath.Join(datadir, "geth.ipc"),
|
||||
"--unlock", keyfileAcct.Address.Hex(),
|
||||
"--password", pwdFilePath,
|
||||
}
|
||||
g := runGeth(t, args...)
|
||||
|
||||
keydir := filepath.Join(datadir, "keystore")
|
||||
keyFiles, err := getFilesInKeystore(keydir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(keyFiles) == 0 {
|
||||
return errors.New("no key files found")
|
||||
}
|
||||
keyJson, err := os.ReadFile(keyFiles[0])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ks := keystore.NewKeyStore(keydir, keystore.LightScryptN, keystore.LightScryptP)
|
||||
keyfileAcct := ks.Accounts()[0]
|
||||
password := ""
|
||||
key, err := keystore.DecryptKey(keyJson, password)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !task.testGethRef.CompareAndSwap(nil, g) {
|
||||
// task cancelled
|
||||
go g.Kill()
|
||||
|
|
@ -264,35 +269,6 @@ func (task *task) run(t *testing.T) (returnErr error) {
|
|||
return nil
|
||||
}
|
||||
|
||||
func getFilesInKeystore(keyFolder string) ([]string, error) {
|
||||
var entries []os.DirEntry
|
||||
var err error
|
||||
|
||||
maxRetries := 5
|
||||
retryDelay := 500 * time.Millisecond
|
||||
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
entries, err = os.ReadDir(keyFolder)
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
time.Sleep(retryDelay)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var filePaths []string
|
||||
for _, entry := range entries {
|
||||
if !entry.IsDir() {
|
||||
filePaths = append(filePaths, filepath.Join(keyFolder, entry.Name()))
|
||||
}
|
||||
}
|
||||
|
||||
return filePaths, nil
|
||||
}
|
||||
|
||||
func waitForClient(port int, timeout time.Duration) (*ethclient.Client, error) {
|
||||
endpoint := fmt.Sprintf("ws://127.0.0.1:%d", port)
|
||||
start := time.Now()
|
||||
|
|
|
|||
Loading…
Reference in a new issue