added support for string type
[govpp.git] / vendor / github.com / google / gopacket / layers / dot1q_test.go
1 // Copyright 2012 Google, Inc. All rights reserved.
2 //
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
5 // tree.
6 package layers
7
8 import (
9         "fmt"
10         "reflect"
11         "testing"
12
13         "github.com/google/gopacket"
14 )
15
16 // test harness to ensure the dot1q layer can be encoded/decoded properly
17 // return error if decoded data not match.
18 func testEncodeDecodeDot1Q(dot1Q *Dot1Q) error {
19         buf := gopacket.NewSerializeBuffer()
20         opts := gopacket.SerializeOptions{}
21         expectedDot1Q := dot1Q
22
23         err := dot1Q.SerializeTo(buf, opts)
24         if err != nil {
25                 return err
26         }
27
28         newDot1q := &Dot1Q{}
29         err = newDot1q.DecodeFromBytes(buf.Bytes(), gopacket.NilDecodeFeedback)
30         if err != nil {
31                 return err
32         }
33         newDot1q.BaseLayer = BaseLayer{}
34
35         if !reflect.DeepEqual(expectedDot1Q, newDot1q) {
36                 return fmt.Errorf("Expect %v actual %v", expectedDot1Q, newDot1q)
37         }
38         return nil
39
40 }
41
42 // Test to ensure what has been encode can be decoded
43 func TestEncodeDecodeDot1Q(t *testing.T) {
44         dot1Qs := []*Dot1Q{
45                 &Dot1Q{
46                         Priority:       uint8(3),
47                         VLANIdentifier: uint16(30),
48                 },
49                 &Dot1Q{
50                         Priority:       uint8(0x07),
51                         DropEligible:   true,
52                         VLANIdentifier: uint16(0xFFF),
53                 },
54         }
55
56         for i, curTest := range dot1Qs {
57                 err := testEncodeDecodeDot1Q(curTest)
58                 if err != nil {
59                         t.Error("Error with item ", i, " with error message :", err)
60                 }
61         }
62 }