summaryrefslogtreecommitdiffstats
path: root/xdr/refl_test.go
blob: abccbdb264d18d471f62b85a230dfffe71a96a4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright (C) 2014 Jakob Borg and other contributors. All rights reserved.
// Use of this source code is governed by an MIT-style license that can be
// found in the LICENSE file.

// +build refl

package xdr_test

import (
	"bytes"
	"testing"

	refl "github.com/davecgh/go-xdr/xdr"
)

func TestCompareMarshals(t *testing.T) {
	e0 := s.MarshalXDR()
	e1, err := refl.Marshal(s)
	if err != nil {
		t.Fatal(err)
	}
	if bytes.Compare(e0, e1) != 0 {
		t.Fatalf("Encoding mismatch;\n\t%x (this)\n\t%x (refl)", e0, e1)
	}
}

func BenchmarkReflMarshal(b *testing.B) {
	var err error
	for i := 0; i < b.N; i++ {
		res, err = refl.Marshal(s)
		if err != nil {
			b.Fatal(err)
		}
	}
}

func BenchmarkReflUnmarshal(b *testing.B) {
	var t XDRBenchStruct
	for i := 0; i < b.N; i++ {
		_, err := refl.Unmarshal(e, &t)
		if err != nil {
			b.Fatal(err)
		}
	}
}