Matthew Dempsky | adda7ad | 2016-08-16 16:33:05 -0700 | [diff] [blame] | 1 | // errorcheckoutput |
Russ Cox | cd22afa | 2012-09-23 13:16:14 -0400 | [diff] [blame] | 2 | |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 3 | // Copyright 2009 The Go Authors. All rights reserved. |
| 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file. |
| 6 | |
| 7 | // Test source files and strings containing NUL and invalid UTF-8. |
| 8 | |
| 9 | package main |
| 10 | |
| 11 | import ( |
| 12 | "fmt" |
| 13 | "os" |
| 14 | ) |
| 15 | |
| 16 | func main() { |
| 17 | var s = "\xc2\xff" |
| 18 | var t = "\xd0\xfe" |
| 19 | var u = "\xab\x00\xfc" |
| 20 | |
| 21 | if len(s) != 2 || s[0] != 0xc2 || s[1] != 0xff || |
| 22 | len(t) != 2 || t[0] != 0xd0 || t[1] != 0xfe || |
| 23 | len(u) != 3 || u[0] != 0xab || u[1] != 0x00 || u[2] != 0xfc { |
Rob Pike | 4f61fc9 | 2010-09-04 10:36:13 +1000 | [diff] [blame] | 24 | println("BUG: non-UTF-8 string mangled") |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 25 | os.Exit(2) |
| 26 | } |
| 27 | |
| 28 | fmt.Print(` |
| 29 | package main |
| 30 | |
| 31 | var x = "in string ` + "\x00" + `" // ERROR "NUL" |
| 32 | |
| 33 | var y = ` + "`in raw string \x00 foo`" + ` // ERROR "NUL" |
| 34 | |
| 35 | // in comment ` + "\x00" + ` // ERROR "NUL" |
| 36 | |
| 37 | /* in other comment ` + "\x00" + ` */ // ERROR "NUL" |
| 38 | |
Matthew Dempsky | adda7ad | 2016-08-16 16:33:05 -0700 | [diff] [blame] | 39 | /* in source code */ ` + "\x00" + `// ERROR "NUL" |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 40 | |
| 41 | var xx = "in string ` + "\xc2\xff" + `" // ERROR "UTF-8" |
| 42 | |
| 43 | var yy = ` + "`in raw string \xff foo`" + ` // ERROR "UTF-8" |
| 44 | |
| 45 | // in comment ` + "\xe2\x80\x01" + ` // ERROR "UTF-8" |
| 46 | |
Ian Lance Taylor | 4427965 | 2010-09-09 09:00:32 -0700 | [diff] [blame] | 47 | /* in other comment ` + "\xe0\x00\x00" + ` */ // ERROR "UTF-8|NUL" |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 48 | |
| 49 | /* in variable name */ |
Matthew Dempsky | adda7ad | 2016-08-16 16:33:05 -0700 | [diff] [blame] | 50 | var z` + "\xc1\x81" + ` int // ERROR "UTF-8" |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 51 | |
Matthew Dempsky | adda7ad | 2016-08-16 16:33:05 -0700 | [diff] [blame] | 52 | /* in source code */ ` + "var \xc2A int" + `// ERROR "UTF-8" |
Russ Cox | cfff862 | 2010-02-16 16:47:39 -0800 | [diff] [blame] | 53 | |
| 54 | `) |
| 55 | } |