slowlorisdb/core/common_test.go
core/common_test.goRaw
1package core
2
3import (
4 "encoding/hex"
5 "encoding/json"
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9)
10
11func TestHashBytes(t *testing.T) {
12 m := []byte("test")
13 h := HashBytes(m)
14 assert.Equal(t, hex.EncodeToString(h[:]), "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08")
15 assert.True(t, !h.IsZero())
16
17 z := Hash{}
18 assert.True(t, z.IsZero())
19}
20
21type testData struct {
22 Data []byte
23 Nonce uint64
24}
25
26func (d *testData) Bytes() []byte {
27 b, _ := json.Marshal(d)
28 return b
29}
30
31func (d *testData) GetNonce() uint64 {
32 return d.Nonce
33}
34func (d *testData) IncrementNonce() {
35 d.Nonce++
36}
37
38func TestPoW(t *testing.T) {
39 difficulty := uint64(2)
40 data := &testData{
41 Data: []byte("test"),
42 Nonce: 0,
43 }
44 nonce, err := CalculatePoW(data, difficulty)
45 assert.Nil(t, err)
46 data.Nonce = nonce
47
48 h := HashBytes(data.Bytes())
49
50 assert.Equal(t, hex.EncodeToString(h[:]), "0000020881c02f5171b978e74bb710242e95cc67b36416e382118a7ab2a69321")
51
52 // CheckPoW
53 assert.True(t, CheckPoW(h, difficulty))
54}