| 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...) |
| } |
| } |