71 lines
1.1 KiB
Go
71 lines
1.1 KiB
Go
|
package dbus
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
var sigTests = []struct {
|
||
|
vs []interface{}
|
||
|
sig Signature
|
||
|
}{
|
||
|
{
|
||
|
[]interface{}{new(int32)},
|
||
|
Signature{"i"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new(string)},
|
||
|
Signature{"s"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new(Signature)},
|
||
|
Signature{"g"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new([]int16)},
|
||
|
Signature{"an"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new(int16), new(uint32)},
|
||
|
Signature{"nu"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new(map[byte]Variant)},
|
||
|
Signature{"a{yv}"},
|
||
|
},
|
||
|
{
|
||
|
[]interface{}{new(Variant), new([]map[int32]string)},
|
||
|
Signature{"vaa{is}"},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
func TestSig(t *testing.T) {
|
||
|
for i, v := range sigTests {
|
||
|
sig := SignatureOf(v.vs...)
|
||
|
if sig != v.sig {
|
||
|
t.Errorf("test %d: got %q, expected %q", i+1, sig.str, v.sig.str)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var getSigTest = []interface{}{
|
||
|
[]struct {
|
||
|
b byte
|
||
|
i int32
|
||
|
t uint64
|
||
|
s string
|
||
|
}{},
|
||
|
map[string]Variant{},
|
||
|
}
|
||
|
|
||
|
func BenchmarkGetSignatureSimple(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
SignatureOf("", int32(0))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkGetSignatureLong(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
SignatureOf(getSigTest...)
|
||
|
}
|
||
|
}
|