• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vocdoni / vocdoni-node / 11856589598

15 Nov 2024 12:49PM UTC coverage: 62.207% (-0.08%) from 62.286%
11856589598

push

github

altergui
Merge branch 'origin/main' into release-lts-1

29 of 56 new or added lines in 10 files covered. (51.79%)

6 existing lines in 3 files now uncovered.

16837 of 27066 relevant lines covered (62.21%)

38382.14 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

42.0
/test/testcommon/testutil/util.go
1
package testutil
2

3
import (
4
        "encoding/base64"
5
        "encoding/hex"
6
        "math/rand"
7
        "sync"
8
        "testing"
9

10
        iden3cryptoutils "github.com/iden3/go-iden3-crypto/utils"
11
        "go.vocdoni.io/dvote/tree/arbo"
12

13
        "go.vocdoni.io/dvote/util"
14
)
15

16
func Hex2byte(tb testing.TB, s string) []byte {
25✔
17
        b, err := hex.DecodeString(util.TrimHex(s))
25✔
18
        if err != nil {
25✔
19
                if tb == nil {
×
20
                        panic(err)
×
21
                }
22
                tb.Fatal(err)
×
23
        }
24
        return b
25✔
25
}
26

27
func B642byte(tb testing.TB, s string) []byte {
×
28
        b, err := base64.StdEncoding.DecodeString(s)
×
29
        if err != nil {
×
30
                if tb == nil {
×
31
                        panic(err)
×
32
                }
33
                tb.Fatal(err)
×
34
        }
35
        return b
×
36
}
37

38
type Random struct {
39
        randMu sync.Mutex
40
        rand   *rand.Rand
41
}
42

43
func NewRandom(seed int64) Random {
28✔
44
        return Random{
28✔
45
                rand: rand.New(rand.NewSource(seed)),
28✔
46
        }
28✔
47
}
28✔
48

49
func (r *Random) RandomBytes(n int) []byte {
45,283✔
50
        b := make([]byte, n)
45,283✔
51
        r.randMu.Lock()
45,283✔
52
        defer r.randMu.Unlock()
45,283✔
53
        _, err := r.rand.Read(b)
45,283✔
54
        if err != nil {
45,283✔
55
                panic(err)
×
56
        }
57
        return b
45,283✔
58
}
59

60
func (r *Random) Random32() [32]byte {
×
61
        b := r.RandomBytes(32)
×
62
        var p [32]byte
×
63
        copy(p[:], b)
×
64
        return p
×
65
}
×
66

67
func (r *Random) RandomIntn(n int) int {
44✔
68
        r.randMu.Lock()
44✔
69
        defer r.randMu.Unlock()
44✔
70
        return r.rand.Intn(n)
44✔
71
}
44✔
72

73
// RandomInZKField returns a random litte-endian encoded element in the
74
// ZK SNARK field.
75
func (r *Random) RandomInZKField() []byte {
×
76
        b := make([]byte, 32)
×
77
        r.randMu.Lock()
×
78
        defer r.randMu.Unlock()
×
79
        for {
×
80
                _, err := r.rand.Read(b)
×
81
                if err != nil {
×
82
                        panic(err)
×
83
                }
84
                b[31] &= 0b00111111
×
NEW
85
                if iden3cryptoutils.CheckBigIntInField(arbo.BytesLEToBigInt(b)) {
×
86
                        return b
×
87
                }
×
88
        }
89
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc