summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lunixbochs/struc/fields_test.go
diff options
context:
space:
mode:
authorRastislav Szabo <raszabo@cisco.com>2017-05-04 11:09:03 +0200
committerRastislav Szabo <raszabo@cisco.com>2017-05-04 11:12:35 +0200
commita101d966133a70b8a76526be25070436d14fcf9f (patch)
tree75e2dbf20de615e58252b780b2ba5baae8fdcf82 /vendor/github.com/lunixbochs/struc/fields_test.go
parenta968ead74525125dff9ae90b1c9a9102e4327900 (diff)
initial commit
Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
Diffstat (limited to 'vendor/github.com/lunixbochs/struc/fields_test.go')
-rw-r--r--vendor/github.com/lunixbochs/struc/fields_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/github.com/lunixbochs/struc/fields_test.go b/vendor/github.com/lunixbochs/struc/fields_test.go
new file mode 100644
index 0000000..850e377
--- /dev/null
+++ b/vendor/github.com/lunixbochs/struc/fields_test.go
@@ -0,0 +1,59 @@
+package struc
+
+import (
+ "bytes"
+ "reflect"
+ "testing"
+)
+
+var refVal = reflect.ValueOf(reference)
+
+func TestFieldsParse(t *testing.T) {
+ if _, err := parseFields(refVal); err != nil {
+ t.Fatal(err)
+ }
+}
+
+func TestFieldsString(t *testing.T) {
+ fields, _ := parseFields(refVal)
+ fields.String()
+}
+
+type sizefromStruct struct {
+ Size1 uint `struc:"sizeof=Var1"`
+ Var1 []byte
+ Size2 int `struc:"sizeof=Var2"`
+ Var2 []byte
+}
+
+func TestFieldsSizefrom(t *testing.T) {
+ var test = sizefromStruct{
+ Var1: []byte{1, 2, 3},
+ Var2: []byte{4, 5, 6},
+ }
+ var buf bytes.Buffer
+ err := Pack(&buf, &test)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = Unpack(&buf, &test)
+ if err != nil {
+ t.Fatal(err)
+ }
+}
+
+type sizefromStructBad struct {
+ Size1 string `struc:"sizeof=Var1"`
+ Var1 []byte
+}
+
+func TestFieldsSizefromBad(t *testing.T) {
+ var test = &sizefromStructBad{Var1: []byte{1, 2, 3}}
+ var buf bytes.Buffer
+ defer func() {
+ if err := recover(); err == nil {
+ t.Fatal("failed to panic on bad sizeof type")
+ }
+ }()
+ Pack(&buf, &test)
+}