Initial commit: Go 1.23 release state
This commit is contained in:
184
test/ken/interbasic.go
Normal file
184
test/ken/interbasic.go
Normal file
@@ -0,0 +1,184 @@
|
||||
// run
|
||||
|
||||
// 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.
|
||||
|
||||
// Test interfaces on basic types.
|
||||
|
||||
package main
|
||||
|
||||
type myint int
|
||||
type mystring string
|
||||
type I0 interface{}
|
||||
|
||||
func f() {
|
||||
var ia, ib I0
|
||||
var i myint
|
||||
var s mystring
|
||||
|
||||
if ia != ib {
|
||||
panic("1")
|
||||
}
|
||||
|
||||
i = 1
|
||||
ia = i
|
||||
ib = i
|
||||
if ia != ib {
|
||||
panic("2")
|
||||
}
|
||||
if ia == nil {
|
||||
panic("3")
|
||||
}
|
||||
|
||||
i = 2
|
||||
ia = i
|
||||
if ia == ib {
|
||||
panic("4")
|
||||
}
|
||||
|
||||
ia = nil
|
||||
if ia == ib {
|
||||
panic("5")
|
||||
}
|
||||
|
||||
ib = nil
|
||||
if ia != ib {
|
||||
panic("6")
|
||||
}
|
||||
|
||||
if ia != nil {
|
||||
panic("7")
|
||||
}
|
||||
|
||||
s = "abc"
|
||||
ia = s
|
||||
ib = nil
|
||||
if ia == ib {
|
||||
panic("8")
|
||||
}
|
||||
|
||||
s = "def"
|
||||
ib = s
|
||||
if ia == ib {
|
||||
panic("9")
|
||||
}
|
||||
|
||||
s = "abc"
|
||||
ib = s
|
||||
if ia != ib {
|
||||
panic("a")
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
var ia [20]I0
|
||||
var b bool
|
||||
var s string
|
||||
var i8 int8
|
||||
var i16 int16
|
||||
var i32 int32
|
||||
var i64 int64
|
||||
var u8 uint8
|
||||
var u16 uint16
|
||||
var u32 uint32
|
||||
var u64 uint64
|
||||
|
||||
f()
|
||||
|
||||
ia[0] = "xxx"
|
||||
ia[1] = 12345
|
||||
ia[2] = true
|
||||
|
||||
s = "now is"
|
||||
ia[3] = s
|
||||
b = false
|
||||
ia[4] = b
|
||||
|
||||
i8 = 29
|
||||
ia[5] = i8
|
||||
i16 = 994
|
||||
ia[6] = i16
|
||||
i32 = 3434
|
||||
ia[7] = i32
|
||||
i64 = 1234567
|
||||
ia[8] = i64
|
||||
|
||||
u8 = 12
|
||||
ia[9] = u8
|
||||
u16 = 799
|
||||
ia[10] = u16
|
||||
u32 = 4455
|
||||
ia[11] = u32
|
||||
u64 = 765432
|
||||
ia[12] = u64
|
||||
|
||||
s = ia[0].(string)
|
||||
if s != "xxx" {
|
||||
println(0, s)
|
||||
panic("fail")
|
||||
}
|
||||
i32 = int32(ia[1].(int))
|
||||
if i32 != 12345 {
|
||||
println(1, i32)
|
||||
panic("fail")
|
||||
}
|
||||
b = ia[2].(bool)
|
||||
if b != true {
|
||||
println(2, b)
|
||||
panic("fail")
|
||||
}
|
||||
|
||||
s = ia[3].(string)
|
||||
if s != "now is" {
|
||||
println(3, s)
|
||||
panic("fail")
|
||||
}
|
||||
b = ia[4].(bool)
|
||||
if b != false {
|
||||
println(4, b)
|
||||
panic("fail")
|
||||
}
|
||||
|
||||
i8 = ia[5].(int8)
|
||||
if i8 != 29 {
|
||||
println(5, i8)
|
||||
panic("fail")
|
||||
}
|
||||
i16 = ia[6].(int16)
|
||||
if i16 != 994 {
|
||||
println(6, i16)
|
||||
panic("fail")
|
||||
}
|
||||
i32 = ia[7].(int32)
|
||||
if i32 != 3434 {
|
||||
println(7, i32)
|
||||
panic("fail")
|
||||
}
|
||||
i64 = ia[8].(int64)
|
||||
if i64 != 1234567 {
|
||||
println(8, i64)
|
||||
panic("fail")
|
||||
}
|
||||
|
||||
u8 = ia[9].(uint8)
|
||||
if u8 != 12 {
|
||||
println(5, u8)
|
||||
panic("fail")
|
||||
}
|
||||
u16 = ia[10].(uint16)
|
||||
if u16 != 799 {
|
||||
println(6, u16)
|
||||
panic("fail")
|
||||
}
|
||||
u32 = ia[11].(uint32)
|
||||
if u32 != 4455 {
|
||||
println(7, u32)
|
||||
panic("fail")
|
||||
}
|
||||
u64 = ia[12].(uint64)
|
||||
if u64 != 765432 {
|
||||
println(8, u64)
|
||||
panic("fail")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user