diff options
Diffstat (limited to 'test/string_lit.go')
-rw-r--r-- | test/string_lit.go | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/test/string_lit.go b/test/string_lit.go deleted file mode 100644 index 4358dd8e8..000000000 --- a/test/string_lit.go +++ /dev/null @@ -1,120 +0,0 @@ -// $G $F.go && $L $F.$A && ./$A.out - -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import "os" - -var ecode int - -func assert(a, b, c string) { - if a != b { - ecode = 1 - print("FAIL: ", c, ": ", a, "!=", b, "\n") - var max int = len(a) - if len(b) > max { - max = len(b) - } - for i := 0; i < max; i++ { - ac := 0 - bc := 0 - if i < len(a) { - ac = int(a[i]) - } - if i < len(b) { - bc = int(b[i]) - } - if ac != bc { - print("\ta[", i, "] = ", ac, "; b[", i, "] =", bc, "\n") - } - } - } -} - -const ( - gx1 = "aä本☺" - gx2 = "aä\xFF\xFF本☺" - gx2fix = "aä\uFFFD\uFFFD本☺" -) - -var ( - gr1 = []int(gx1) - gr2 = []int(gx2) - gb1 = []byte(gx1) - gb2 = []byte(gx2) -) - -func main() { - ecode = 0 - s := - "" + - " " + - "'`" + - "a" + - "ä" + - "本" + - "\a\b\f\n\r\t\v\\\"" + - "\000\123\x00\xca\xFE\u0123\ubabe\U0000babe" + - - `` + - ` ` + - `'"` + - `a` + - `ä` + - `本` + - `\a\b\f\n\r\t\v\\\'` + - `\000\123\x00\xca\xFE\u0123\ubabe\U0000babe` + - `\x\u\U\` - - assert("", ``, "empty") - assert(" ", " ", "blank") - assert("\x61", "a", "lowercase a") - assert("\x61", `a`, "lowercase a (backquote)") - assert("\u00e4", "ä", "a umlaut") - assert("\u00e4", `ä`, "a umlaut (backquote)") - assert("\u672c", "本", "nihon") - assert("\u672c", `本`, "nihon (backquote)") - assert("\x07\x08\x0c\x0a\x0d\x09\x0b\x5c\x22", - "\a\b\f\n\r\t\v\\\"", - "backslashes") - assert("\\a\\b\\f\\n\\r\\t\\v\\\\\\\"", - `\a\b\f\n\r\t\v\\\"`, - "backslashes (backquote)") - assert("\x00\x53\000\xca\376S몾몾", - "\000\123\x00\312\xFE\u0053\ubabe\U0000babe", - "backslashes 2") - assert("\\000\\123\\x00\\312\\xFE\\u0123\\ubabe\\U0000babe", - `\000\123\x00\312\xFE\u0123\ubabe\U0000babe`, - "backslashes 2 (backquote)") - assert("\\x\\u\\U\\", `\x\u\U\`, "backslash 3 (backquote)") - - // test large runes. perhaps not the most logical place for this test. - var r int32 - r = 0x10ffff; // largest rune value - s = string(r) - assert(s, "\xf4\x8f\xbf\xbf", "largest rune") - r = 0x10ffff + 1 - s = string(r) - assert(s, "\xef\xbf\xbd", "too-large rune") - - assert(string(gr1), gx1, "global ->[]int") - assert(string(gr2), gx2fix, "global invalid ->[]int") - assert(string(gb1), gx1, "->[]byte") - assert(string(gb2), gx2, "global invalid ->[]byte") - - var ( - r1 = []int(gx1) - r2 = []int(gx2) - b1 = []byte(gx1) - b2 = []byte(gx2) - ) - assert(string(r1), gx1, "->[]int") - assert(string(r2), gx2fix, "invalid ->[]int") - assert(string(b1), gx1, "->[]byte") - assert(string(b2), gx2, "invalid ->[]byte") - - os.Exit(ecode) -} |