libgo: Merge from revision 18783:00cce3a34d7e of master library.
This revision was committed January 7, 2014. The next revision deleted runtime/mfinal.c. That will be done in a subsequent merge. This merge changes type descriptors to add a zero field, pointing to a zero value for that type. This is implemented as a common variable. * go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and alignment parameters. Permit init parameter to be NULL. From-SVN: r211249
This commit is contained in:
parent
82b3da6a71
commit
bae90c989c
230 changed files with 9570 additions and 7953 deletions
|
@ -99,3 +99,51 @@ func TestDecode(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var decodeRuneTests = []struct {
|
||||
r1, r2 rune
|
||||
want rune
|
||||
}{
|
||||
{0xd800, 0xdc00, 0x10000},
|
||||
{0xd800, 0xdc01, 0x10001},
|
||||
{0xd808, 0xdf45, 0x12345},
|
||||
{0xdbff, 0xdfff, 0x10ffff},
|
||||
{0xd800, 'a', 0xfffd}, // illegal, replacement rune substituted
|
||||
}
|
||||
|
||||
func TestDecodeRune(t *testing.T) {
|
||||
for i, tt := range decodeRuneTests {
|
||||
got := DecodeRune(tt.r1, tt.r2)
|
||||
if got != tt.want {
|
||||
t.Errorf("%d: DecodeRune(%q, %q) = %v; want %v", i, tt.r1, tt.r2, got, tt.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var surrogateTests = []struct {
|
||||
r rune
|
||||
want bool
|
||||
}{
|
||||
// from http://en.wikipedia.org/wiki/UTF-16
|
||||
{'\u007A', false}, // LATIN SMALL LETTER Z
|
||||
{'\u6C34', false}, // CJK UNIFIED IDEOGRAPH-6C34 (water)
|
||||
{'\uFEFF', false}, // Byte Order Mark
|
||||
{'\U00010000', false}, // LINEAR B SYLLABLE B008 A (first non-BMP code point)
|
||||
{'\U0001D11E', false}, // MUSICAL SYMBOL G CLEF
|
||||
{'\U0010FFFD', false}, // PRIVATE USE CHARACTER-10FFFD (last Unicode code point)
|
||||
|
||||
{rune(0xd7ff), false}, // surr1-1
|
||||
{rune(0xd800), true}, // surr1
|
||||
{rune(0xdc00), true}, // surr2
|
||||
{rune(0xe000), false}, // surr3
|
||||
{rune(0xdfff), true}, // surr3-1
|
||||
}
|
||||
|
||||
func TestIsSurrogate(t *testing.T) {
|
||||
for i, tt := range surrogateTests {
|
||||
got := IsSurrogate(tt.r)
|
||||
if got != tt.want {
|
||||
t.Errorf("%d: IsSurrogate(%q) = %v; want %v", i, tt.r, got, tt.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue