mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 04:36:42 +00:00
tests for setMining isMining, export, import
This commit is contained in:
parent
6913cad460
commit
ea6f2124d9
2 changed files with 124 additions and 3 deletions
|
|
@ -15,6 +15,22 @@ type jeth struct {
|
|||
toVal func(v interface{}) otto.Value
|
||||
}
|
||||
|
||||
func (self *jeth) IsMining(call otto.FunctionCall) otto.Value {
|
||||
return self.toVal(self.xeth.IsMining())
|
||||
}
|
||||
|
||||
func (self *jeth) IsListening(call otto.FunctionCall) otto.Value {
|
||||
return self.toVal(self.xeth.IsListening())
|
||||
}
|
||||
|
||||
func (self *jeth) IsContract(call otto.FunctionCall) otto.Value {
|
||||
address, err := call.Argument(0).ToString()
|
||||
if err != nil {
|
||||
return otto.UndefinedValue()
|
||||
}
|
||||
return self.toVal(self.xeth.IsContract(address))
|
||||
}
|
||||
|
||||
func (self *jeth) GetCoinbase(call otto.FunctionCall) otto.Value {
|
||||
return self.toVal(self.xeth.Coinbase())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,23 @@ import (
|
|||
)
|
||||
|
||||
func TestJEthRE(t *testing.T) {
|
||||
|
||||
err := os.MkdirAll("/tmp/eth/data/", os.ModePerm)
|
||||
if err != nil {
|
||||
t.Errorf("%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
ethereum, err := eth.New(ð.Config{
|
||||
DataDir: "/tmp/eth",
|
||||
KeyStore: "file",
|
||||
})
|
||||
// os.WriteFile("/tmp/eth/default.addr", []byte("25ec29286951d5acc52a4f4d631f479c1002f97"))
|
||||
ethutil.WriteFile("/tmp/eth/default.prv", []byte("946d0fe6dd95ef5476dd1fd204626b59c973bd72ffac4a108827ef488465cc68"))
|
||||
if err != nil {
|
||||
t.Errorf("%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = ethutil.WriteFile("/tmp/eth/default.prv", []byte("946d0fe6dd95ef5476dd1fd204626b59c973bd72ffac4a108827ef488465cc68"))
|
||||
if err != nil {
|
||||
t.Errorf("%v", err)
|
||||
return
|
||||
|
|
@ -29,17 +39,112 @@ func TestJEthRE(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
|
||||
pp, err := jethre.PrettyPrint(val)
|
||||
if err != nil {
|
||||
t.Errorf("%v", err)
|
||||
}
|
||||
|
||||
if !val.IsString() {
|
||||
t.Errorf("incorrect type, expected string, got %v: %v", val, pp)
|
||||
}
|
||||
strVal, _ := val.ToString()
|
||||
|
||||
expected := "0x25ec29286951d5acc52a4f4d631f479c1002f97b"
|
||||
if strVal != expected {
|
||||
t.Errorf("incorrect result, expected %s, got %v", expected, strVal)
|
||||
}
|
||||
|
||||
// should get current block
|
||||
// val, err = jethre.Run("eth.getBlock()")
|
||||
// if err != nil {
|
||||
// t.Errorf("expected no error, got %v", err)
|
||||
// }
|
||||
|
||||
fn := "/tmp/eth/data/blockchain.0"
|
||||
val, err = jethre.Run("eth.export(\"" + fn + "\")")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
if _, err = os.Stat(fn); err != nil {
|
||||
t.Errorf("expected no error on file, got %v", err)
|
||||
}
|
||||
|
||||
ethereum, err = eth.New(ð.Config{
|
||||
DataDir: "/tmp/eth1",
|
||||
KeyStore: "file",
|
||||
})
|
||||
val, err = jethre.Run("eth.import(\"" + fn + "\")")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
|
||||
// var val0 otto.Value
|
||||
|
||||
// should get current block
|
||||
// val0, err = jethre.Run("eth.getBlock()")
|
||||
// if err != nil {
|
||||
// t.Errorf("expected no error, got %v", err)
|
||||
// }
|
||||
|
||||
// if v0 != v1 {
|
||||
// t.Errorf("expected same head after export-import, got %v (!=%v)", v1, v0)
|
||||
// }
|
||||
|
||||
ethereum.Start()
|
||||
// FIXME:
|
||||
// ethereum.Stop causes panic: runtime error: invalid memory address or nil pointer
|
||||
// github.com/ethereum/go-ethereum/eth.(*Ethereum).Stop(0xc208f46270)
|
||||
// /Users/tron/Work/ethereum/go/src/github.com/ethereum/go-ethereum/eth/backend.go:292 +0xdc
|
||||
// defer ethereum.Stop()
|
||||
|
||||
val, err = jethre.Run("eth.isMining()")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
var mining bool
|
||||
mining, err = val.ToBoolean()
|
||||
if err != nil {
|
||||
t.Errorf("expected boolean, got %v", err)
|
||||
}
|
||||
if mining {
|
||||
t.Errorf("expected false (not mining), got true")
|
||||
}
|
||||
|
||||
val, err = jethre.Run("eth.setMining(true)")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
mining, _ = val.ToBoolean()
|
||||
if !mining {
|
||||
t.Errorf("expected true (mining), got false")
|
||||
}
|
||||
val, err = jethre.Run("eth.isMining()")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
mining, err = val.ToBoolean()
|
||||
if err != nil {
|
||||
t.Errorf("expected boolean, got %v", err)
|
||||
}
|
||||
if !mining {
|
||||
t.Errorf("expected true (mining), got false")
|
||||
}
|
||||
|
||||
val, err = jethre.Run("eth.setMining(true)")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
mining, _ = val.ToBoolean()
|
||||
if !mining {
|
||||
t.Errorf("expected true (mining), got false")
|
||||
}
|
||||
|
||||
val, err = jethre.Run("eth.setMining(false)")
|
||||
if err != nil {
|
||||
t.Errorf("expected no error, got %v", err)
|
||||
}
|
||||
mining, _ = val.ToBoolean()
|
||||
if mining {
|
||||
t.Errorf("expected false (not mining), got true")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue