mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 14:46:42 +00:00
whisper: new api tests added + bugfix
This commit is contained in:
parent
40b83c27ab
commit
42aa7b4f62
2 changed files with 125 additions and 67 deletions
|
|
@ -24,6 +24,7 @@ import (
|
|||
)
|
||||
|
||||
func TestBasic(x *testing.T) {
|
||||
var id string = "test"
|
||||
api := NewPublicWhisperAPI()
|
||||
if api == nil {
|
||||
x.Errorf("failed to create API.")
|
||||
|
|
@ -41,77 +42,129 @@ func TestBasic(x *testing.T) {
|
|||
return
|
||||
}
|
||||
|
||||
var id string = "test"
|
||||
|
||||
exist, err := api.HasIdentity(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed HasIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed HasIdentity: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed HasSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed HasSymKey: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.DeleteIdentity(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed DeleteIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
pub, err := api.NewIdentity()
|
||||
if err != nil {
|
||||
x.Errorf("failed NewIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if len(pub) == 0 {
|
||||
x.Errorf("NewIdentity: empty")
|
||||
return
|
||||
}
|
||||
|
||||
//spub := string(crypto.FromECDSAPub(pub))
|
||||
//fmt.Printf("%s \n", pub)
|
||||
|
||||
exist, err = api.HasIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed HasIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if !exist {
|
||||
x.Errorf("failed HasIdentity: false negative.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.DeleteIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed DeleteIdentity 2: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed HasIdentity 3: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed HasIdentity 3: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
var hexnum rpc.HexNumber
|
||||
mail := api.GetFilterChanges(hexnum)
|
||||
if len(mail) != 0 {
|
||||
x.Errorf("failed GetFilterChanges")
|
||||
return
|
||||
}
|
||||
|
||||
exist, err := api.HasIdentity(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 1 HasIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed 2 HasIdentity: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.DeleteIdentity(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 3 DeleteIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
pub, err := api.NewIdentity()
|
||||
if err != nil {
|
||||
x.Errorf("failed 4 NewIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if len(pub) == 0 {
|
||||
x.Errorf("NewIdentity 5: empty")
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed 6 HasIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if !exist {
|
||||
x.Errorf("failed 7 HasIdentity: false negative.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.DeleteIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed 8 DeleteIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasIdentity(pub)
|
||||
if err != nil {
|
||||
x.Errorf("failed 9 HasIdentity: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed 10 HasIdentity: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
id = "arbitrary text"
|
||||
id2 := "another arbitrary string"
|
||||
|
||||
exist, err = api.HasSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 11 HasSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed 12 HasSymKey: false positive.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.GenerateSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 13 GenerateSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 14 HasSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
if !exist {
|
||||
x.Errorf("failed 15 HasSymKey: false negative.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.AddSymKey(id, []byte("some stuff here"))
|
||||
if err == nil {
|
||||
x.Errorf("failed 16 AddSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = api.AddSymKey(id2, []byte("some stuff here"))
|
||||
if err != nil {
|
||||
x.Errorf("failed 17 AddSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasSymKey(id2)
|
||||
if err != nil {
|
||||
x.Errorf("failed 18 HasSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
if !exist {
|
||||
x.Errorf("failed 19 HasSymKey: false negative.")
|
||||
return
|
||||
}
|
||||
|
||||
err = api.DeleteSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 20 DeleteSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
|
||||
exist, err = api.HasSymKey(id)
|
||||
if err != nil {
|
||||
x.Errorf("failed 21 HasSymKey: %s.", err)
|
||||
return
|
||||
}
|
||||
if exist {
|
||||
x.Errorf("failed 22 HasSymKey: false positive.")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,6 +216,11 @@ func (w *Whisper) AddSymKey(name string, key []byte) error {
|
|||
|
||||
w.keyMu.Lock()
|
||||
defer w.keyMu.Unlock()
|
||||
|
||||
// double check is necessary, because deriveKeyMaterial() is slow
|
||||
if w.symKeys[name] != nil {
|
||||
return fmt.Errorf("Key with name [%s] already exists", name)
|
||||
}
|
||||
w.symKeys[name] = derived
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue