mirror of
https://github.com/golang/go
synced 2024-09-15 14:10:17 +00:00
go/parser: expand test cases for bad import
R=gri CC=golang-dev https://golang.org/cl/5697047
This commit is contained in:
parent
224f05ba88
commit
3a6a1f9e7e
|
@ -207,24 +207,40 @@ func TestVarScope(t *testing.T) {
|
|||
}
|
||||
|
||||
var imports = map[string]bool{
|
||||
"a": true,
|
||||
"a/b": true,
|
||||
"a.b": true,
|
||||
"m\x61th": true,
|
||||
"greek/αβ": true,
|
||||
"": false,
|
||||
"\x00": false,
|
||||
"\x7f": false,
|
||||
"a!": false,
|
||||
"a b": false,
|
||||
`a\b`: false,
|
||||
"`a`": false,
|
||||
"\x80\x80": false,
|
||||
`"a"`: true,
|
||||
"`a`": true,
|
||||
`"a/b"`: true,
|
||||
`"a.b"`: true,
|
||||
`"m\x61th"`: true,
|
||||
`"greek/αβ"`: true,
|
||||
`""`: false,
|
||||
|
||||
// Each of these pairs tests both `` vs "" strings
|
||||
// and also use of invalid characters spelled out as
|
||||
// escape sequences and written directly.
|
||||
// For example `"\x00"` tests import "\x00"
|
||||
// while "`\x00`" tests import `<actual-NUL-byte>`.
|
||||
`"\x00"`: false,
|
||||
"`\x00`": false,
|
||||
`"\x7f"`: false,
|
||||
"`\x7f`": false,
|
||||
`"a!"`: false,
|
||||
"`a!`": false,
|
||||
`"a b"`: false,
|
||||
"`a b`": false,
|
||||
`"a\\b"`: false,
|
||||
"`a\\b`": false,
|
||||
"\"`a`\"": false,
|
||||
"`\"a\"`": false,
|
||||
`"\x80\x80"`: false,
|
||||
"`\x80\x80`": false,
|
||||
`"\xFFFD"`: false,
|
||||
"`\xFFFD`": false,
|
||||
}
|
||||
|
||||
func TestImports(t *testing.T) {
|
||||
for path, isValid := range imports {
|
||||
src := fmt.Sprintf("package p; import %q", path)
|
||||
src := fmt.Sprintf("package p; import %s", path)
|
||||
_, err := ParseFile(fset, "", src, 0)
|
||||
switch {
|
||||
case err != nil && isValid:
|
||||
|
|
Loading…
Reference in a new issue