scanner: Add unit test triggering a panic in scanHeredoc().
``` panic: regexp: Compile("[[:space:]]*<\xc8\\z"): error parsing regexp: invalid UTF-8: `�\z` goroutine 32 [running]: testing.tRunner.func1(0xc4200cae10) /usr/lib/google-golang/src/testing/testing.go:742 +0x29d panic(0x507a00, 0xc420290690) /usr/lib/google-golang/src/runtime/panic.go:505 +0x229 regexp.MustCompile(0xc420289e10, 0x10, 0xc420087680) /usr/lib/google-golang/src/regexp/regexp.go:240 +0x171 github.com/hashicorp/hcl/hcl/scanner.(*Scanner).scanHeredoc(0xc4200878c0) gopath/src/github.com/hashicorp/hcl/hcl/scanner/scanner.go:444 +0x3a9 github.com/hashicorp/hcl/hcl/scanner.(*Scanner).Scan(0xc4200878c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) gopath/src/github.com/hashicorp/hcl/hcl/scanner/scanner.go:186 +0x3e5 ```
This commit is contained in:
parent
b1738d9053
commit
73fde59edb
@ -589,3 +589,22 @@ func countNewlines(s string) int {
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func TestScanHeredocRegexpCompile(t *testing.T) {
|
||||
cases := []string{
|
||||
"0\xe1\n<<ȸ\nhello\nworld\nȸ",
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
s := New([]byte(c))
|
||||
fmt.Printf("START %q\n", c)
|
||||
|
||||
for {
|
||||
tok := s.Scan()
|
||||
if tok.Type == token.EOF {
|
||||
break
|
||||
}
|
||||
t.Logf("s.Scan() = %s", tok)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user