diff options
Diffstat (limited to 'src/encoding/asn1/marshal_test.go')
| -rw-r--r-- | src/encoding/asn1/marshal_test.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/encoding/asn1/marshal_test.go b/src/encoding/asn1/marshal_test.go index 529052285f..e3a7d8ff00 100644 --- a/src/encoding/asn1/marshal_test.go +++ b/src/encoding/asn1/marshal_test.go @@ -376,3 +376,31 @@ func TestSetEncoderSETSliceSuffix(t *testing.T) { t.Errorf("Unexpected SET content. got: %s, want: %s", resultSet, expectedOrder) } } + +func BenchmarkUnmarshal(b *testing.B) { + b.ReportAllocs() + + type testCase struct { + in []byte + out interface{} + } + var testData []testCase + for _, test := range unmarshalTestData { + pv := reflect.New(reflect.TypeOf(test.out).Elem()) + inCopy := make([]byte, len(test.in)) + copy(inCopy, test.in) + outCopy := pv.Interface() + + testData = append(testData, testCase{ + in: inCopy, + out: outCopy, + }) + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + for _, testCase := range testData { + _, _ = Unmarshal(testCase.in, testCase.out) + } + } +} |
