Wait until vpp is ready + Update vendor
[govpp.git] / vendor / gopkg.in / yaml.v2 / decode_test.go
index a6fea0f..713b1ee 100644 (file)
@@ -405,6 +405,12 @@ var unmarshalTests = []struct {
                map[string]interface{}{"v": 1},
        },
 
+       // Non-specific tag (Issue #75)
+       {
+               "v: ! test",
+               map[string]interface{}{"v": "test"},
+       },
+
        // Anchors and aliases.
        {
                "a: &x 1\nb: &y 2\nc: *x\nd: *y\n",
@@ -604,7 +610,8 @@ type inlineC struct {
 }
 
 func (s *S) TestUnmarshal(c *C) {
-       for _, item := range unmarshalTests {
+       for i, item := range unmarshalTests {
+               c.Logf("test %d: %q", i, item.data)
                t := reflect.ValueOf(item.value).Type()
                var value interface{}
                switch t.Kind() {
@@ -648,6 +655,7 @@ var unmarshalErrorTests = []struct {
        {"a: !!binary ==", "yaml: !!binary value contains invalid base64 data"},
        {"{[.]}", `yaml: invalid map key: \[\]interface \{\}\{"\."\}`},
        {"{{.}}", `yaml: invalid map key: map\[interface\ \{\}\]interface \{\}\{".":interface \{\}\(nil\)\}`},
+       {"%TAG !%79! tag:yaml.org,2002:\n---\nv: !%79!int '1'", "yaml: did not find expected whitespace"},
 }
 
 func (s *S) TestUnmarshalErrors(c *C) {
@@ -968,6 +976,17 @@ func (s *S) TestUnmarshalSliceOnPreset(c *C) {
        c.Assert(v.A, DeepEquals, []int{2})
 }
 
+func (s *S) TestUnmarshalStrict(c *C) {
+       v := struct{ A, B int }{}
+
+       err := yaml.UnmarshalStrict([]byte("a: 1\nb: 2"), &v)
+       c.Check(err, IsNil)
+       err = yaml.Unmarshal([]byte("a: 1\nb: 2\nc: 3"), &v)
+       c.Check(err, IsNil)
+       err = yaml.UnmarshalStrict([]byte("a: 1\nb: 2\nc: 3"), &v)
+       c.Check(err, ErrorMatches, "yaml: unmarshal errors:\n  line 1: field c not found in struct struct { A int; B int }")
+}
+
 //var data []byte
 //func init() {
 //     var err error