1
0
mirror of https://github.com/golang/go synced 2024-11-21 19:24:45 -07:00

gofmt: added testcase for files containing \r\n line endings

(see also issue 3961).

hexdump -c testdata/crlf.input
0000000   /   *  \r  \n  \t   S   o   u   r   c   e       c   o   n   t
0000010   a   i   n   i   n   g       C   R   /   L   F       l   i   n
0000020   e       e   n   d   i   n   g   s   .  \r  \n  \t   T   h   e
0000030       g   o   f   m   t   '   e   d       o   u   t   p   u   t
0000040       m   u   s   t       o   n   l   y       h   a   v   e
0000050   L   F  \r  \n  \t   l   i   n   e       e   n   d   i   n   g
0000060   s   .  \r  \n   *   /  \r  \n   p   a   c   k   a   g   e
0000070   m   a   i   n  \r  \n  \r  \n   f   u   n   c       m   a   i
0000080   n   (   )       {  \r  \n  \t   /   /       l   i   n   e
0000090   c   o   m   m   e   n   t  \r  \n  \t   p   r   i   n   t   l
00000a0   n   (   "   h   e   l   l   o   ,       w   o   r   l   d   !
00000b0   "   )       /   /       a   n   o   t   h   e   r       l   i
00000c0   n   e       c   o   m   m   e   n   t  \r  \n  \t   p   r   i
00000d0   n   t   l   n   (   )  \r  \n   }  \r  \n
00000db

hexdump -c testdata/crlf.golden
0000000   /   *  \n  \t   S   o   u   r   c   e       c   o   n   t   a
0000010   i   n   i   n   g       C   R   /   L   F       l   i   n   e
0000020       e   n   d   i   n   g   s   .  \n  \t   T   h   e       g
0000030   o   f   m   t   '   e   d       o   u   t   p   u   t       m
0000040   u   s   t       o   n   l   y       h   a   v   e       L   F
0000050  \n  \t   l   i   n   e       e   n   d   i   n   g   s   .  \n
0000060   *   /  \n   p   a   c   k   a   g   e       m   a   i   n  \n
0000070  \n   f   u   n   c       m   a   i   n   (   )       {  \n  \t
0000080   /   /       l   i   n   e       c   o   m   m   e   n   t  \n
0000090  \t   p   r   i   n   t   l   n   (   "   h   e   l   l   o   ,
00000a0       w   o   r   l   d   !   "   )       /   /       a   n   o
00000b0   t   h   e   r       l   i   n   e       c   o   m   m   e   n
00000c0   t  \n  \t   p   r   i   n   t   l   n   (   )  \n   }  \n
00000cf

R=rsc
CC=golang-dev
https://golang.org/cl/6526052
This commit is contained in:
Robert Griesemer 2012-09-19 14:14:21 -07:00
parent 93195e1f31
commit 83601807af
3 changed files with 46 additions and 0 deletions

View File

@ -81,6 +81,7 @@ var tests = []struct {
{"testdata/stdin*.input", "-stdin"}, {"testdata/stdin*.input", "-stdin"},
{"testdata/comments.input", ""}, {"testdata/comments.input", ""},
{"testdata/import.input", ""}, {"testdata/import.input", ""},
{"testdata/crlf.input", ""}, // test case for issue 3961; see also TestCRLF
} }
func TestRewrite(t *testing.T) { func TestRewrite(t *testing.T) {
@ -103,3 +104,24 @@ func TestRewrite(t *testing.T) {
} }
} }
} }
func TestCRLF(t *testing.T) {
const input = "testdata/crlf.input" // must contain CR/LF's
const golden = "testdata/crlf.golden" // must not contain any CR's
data, err := ioutil.ReadFile(input)
if err != nil {
t.Error(err)
}
if bytes.Index(data, []byte("\r\n")) < 0 {
t.Errorf("%s contains no CR/LF's", input)
}
data, err = ioutil.ReadFile(golden)
if err != nil {
t.Error(err)
}
if bytes.Index(data, []byte("\r")) >= 0 {
t.Errorf("%s contains CR's", golden)
}
}

12
src/cmd/gofmt/testdata/crlf.golden vendored Normal file
View File

@ -0,0 +1,12 @@
/*
Source containing CR/LF line endings.
The gofmt'ed output must only have LF
line endings.
*/
package main
func main() {
// line comment
println("hello, world!") // another line comment
println()
}

12
src/cmd/gofmt/testdata/crlf.input vendored Executable file
View File

@ -0,0 +1,12 @@
/*
Source containing CR/LF line endings.
The gofmt'ed output must only have LF
line endings.
*/
package main
func main() {
// line comment
println("hello, world!") // another line comment
println()
}