Refactored binapi generator with message encoding
[govpp.git] / codec / bench_test.go
1 //  Copyright (c) 2020 Cisco and/or its affiliates.
2 //
3 //  Licensed under the Apache License, Version 2.0 (the "License");
4 //  you may not use this file except in compliance with the License.
5 //  You may obtain a copy of the License at:
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 //  Unless required by applicable law or agreed to in writing, software
10 //  distributed under the License is distributed on an "AS IS" BASIS,
11 //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 //  See the License for the specific language governing permissions and
13 //  limitations under the License.
14
15 package codec_test
16
17 import (
18         "fmt"
19         "testing"
20
21         "git.fd.io/govpp.git/codec"
22 )
23
24 var Data []byte
25
26 func BenchmarkEncode(b *testing.B) {
27         m := NewTestAllMsg()
28
29         var err error
30         var data []byte
31
32         for i := 0; i < b.N; i++ {
33                 c := codec.MsgCodec{}
34                 data, err = c.EncodeMsg(m, 100)
35                 if err != nil {
36                         b.Fatalf("expected nil error, got: %v", err)
37                 }
38         }
39         Data = data
40 }
41
42 func BenchmarkEncodeStruc(b *testing.B) {
43         m := NewTestAllMsg()
44         c := codec.OldCodec{}
45
46         var err error
47         var data []byte
48
49         b.ResetTimer()
50         for i := 0; i < b.N; i++ {
51                 data, err = c.Marshal(m)
52                 if err != nil {
53                         b.Fatalf("expected nil error, got: %v", err)
54                 }
55         }
56         Data = data
57         fmt.Printf("DATA(%d): % 0X\n", len(Data), Data)
58 }
59
60 /*func BenchmarkEncodeNew(b *testing.B) {
61         m := NewTestAllMsg()
62
63         var err error
64         var data []byte
65
66         for i := 0; i < b.N; i++ {
67                 c := CodecNew{}
68                 data, err = c.Marshal(m)
69                 if err != nil {
70                         b.Fatalf("expected nil error, got: %v", err)
71                 }
72         }
73         Data = data
74 }*/
75 func BenchmarkEncodeHard(b *testing.B) {
76         m := NewTestAllMsg()
77
78         var err error
79         var data []byte
80
81         b.ResetTimer()
82         for i := 0; i < b.N; i++ {
83                 data, err = m.Marshal(nil)
84                 if err != nil {
85                         b.Fatalf("expected nil error, got: %v", err)
86                 }
87         }
88         Data = data
89         fmt.Printf("DATA(%d): % 0X\n", len(Data), Data)
90 }