@@ -1006,6 +1006,33 @@ func TestIssue12594(t *testing.T) {
10061006 }
10071007}
10081008
1009+ func TestWriteLongHeader (t * testing.T ) {
1010+ for _ , test := range []struct {
1011+ name string
1012+ h * Header
1013+ }{{
1014+ name : "name too long" ,
1015+ h : & Header {Name : strings .Repeat ("a" , maxSpecialFileSize )},
1016+ }, {
1017+ name : "linkname too long" ,
1018+ h : & Header {Linkname : strings .Repeat ("a" , maxSpecialFileSize )},
1019+ }, {
1020+ name : "uname too long" ,
1021+ h : & Header {Uname : strings .Repeat ("a" , maxSpecialFileSize )},
1022+ }, {
1023+ name : "gname too long" ,
1024+ h : & Header {Gname : strings .Repeat ("a" , maxSpecialFileSize )},
1025+ }, {
1026+ name : "PAX header too long" ,
1027+ h : & Header {PAXRecords : map [string ]string {"GOLANG.x" : strings .Repeat ("a" , maxSpecialFileSize )}},
1028+ }} {
1029+ w := NewWriter (io .Discard )
1030+ if err := w .WriteHeader (test .h ); err != ErrFieldTooLong {
1031+ t .Errorf ("%v: w.WriteHeader() = %v, want ErrFieldTooLong" , test .name , err )
1032+ }
1033+ }
1034+ }
1035+
10091036// testNonEmptyWriter wraps an io.Writer and ensures that
10101037// Write is never called with an empty buffer.
10111038type testNonEmptyWriter struct { io.Writer }
0 commit comments