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
|
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