diff options
author | Viktor TrĂ³n <viktor.tron@gmail.com> | 2018-06-22 05:00:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-22 05:00:43 +0800 |
commit | eaff89291ce998ba4bf9b9816ca8a15c8b85f440 (patch) | |
tree | c77d7a06627a1a7f578d0fec8e39788e66672e53 /swarm/multihash/multihash_test.go | |
parent | d926bf2c7e3182d694c15829a37a0ca7331cd03c (diff) | |
parent | e187711c6545487d4cac3701f0f506bb536234e2 (diff) | |
download | dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar.gz dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar.bz2 dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar.lz dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar.xz dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.tar.zst dexon-eaff89291ce998ba4bf9b9816ca8a15c8b85f440.zip |
Merge pull request #17041 from ethersphere/swarm-network-rewrite-merge
Swarm POC3 - happy solstice
Diffstat (limited to 'swarm/multihash/multihash_test.go')
-rw-r--r-- | swarm/multihash/multihash_test.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/swarm/multihash/multihash_test.go b/swarm/multihash/multihash_test.go new file mode 100644 index 000000000..85df741dd --- /dev/null +++ b/swarm/multihash/multihash_test.go @@ -0,0 +1,53 @@ +// Copyright 2018 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +package multihash + +import ( + "bytes" + "math/rand" + "testing" +) + +// parse multihash, and check that invalid multihashes fail +func TestCheckMultihash(t *testing.T) { + hashbytes := make([]byte, 32) + c, err := rand.Read(hashbytes) + if err != nil { + t.Fatal(err) + } else if c < 32 { + t.Fatal("short read") + } + + expected := ToMultihash(hashbytes) + + l, hl, _ := GetMultihashLength(expected) + if l != 32 { + t.Fatalf("expected length %d, got %d", 32, l) + } else if hl != 2 { + t.Fatalf("expected header length %d, got %d", 2, hl) + } + if _, _, err := GetMultihashLength(expected[1:]); err == nil { + t.Fatal("expected failure on corrupt header") + } + if _, _, err := GetMultihashLength(expected[:len(expected)-2]); err == nil { + t.Fatal("expected failure on short content") + } + dh, _ := FromMultihash(expected) + if !bytes.Equal(dh, hashbytes) { + t.Fatalf("expected content hash %x, got %x", hashbytes, dh) + } +} |