...
1 package dbus
2
3 import (
4 "testing"
5 )
6
7 var sigTests = []struct {
8 vs []interface{}
9 sig Signature
10 }{
11 {
12 []interface{}{new(int32)},
13 Signature{"i"},
14 },
15 {
16 []interface{}{new(string)},
17 Signature{"s"},
18 },
19 {
20 []interface{}{new(Signature)},
21 Signature{"g"},
22 },
23 {
24 []interface{}{new([]int16)},
25 Signature{"an"},
26 },
27 {
28 []interface{}{new(int16), new(uint32)},
29 Signature{"nu"},
30 },
31 {
32 []interface{}{new(map[byte]Variant)},
33 Signature{"a{yv}"},
34 },
35 {
36 []interface{}{new(Variant), new([]map[int32]string)},
37 Signature{"vaa{is}"},
38 },
39 }
40
41 func TestSig(t *testing.T) {
42 for i, v := range sigTests {
43 sig := SignatureOf(v.vs...)
44 if sig != v.sig {
45 t.Errorf("test %d: got %q, expected %q", i+1, sig.str, v.sig.str)
46 }
47 }
48 }
49
50 var getSigTest = []interface{}{
51 []struct {
52 b byte
53 i int32
54 t uint64
55 s string
56 }{},
57 map[string]Variant{},
58 }
59
60 func BenchmarkGetSignatureSimple(b *testing.B) {
61 for i := 0; i < b.N; i++ {
62 SignatureOf("", int32(0))
63 }
64 }
65
66 func BenchmarkGetSignatureLong(b *testing.B) {
67 for i := 0; i < b.N; i++ {
68 SignatureOf(getSigTest...)
69 }
70 }
71
View as plain text