You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
678 B
44 lines
678 B
// Copyright 2015 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 (
|
|
"bytes"
|
|
|
|
"./a"
|
|
)
|
|
|
|
type X struct {
|
|
*a.X
|
|
}
|
|
|
|
type Intf interface {
|
|
Get() []byte
|
|
RetPtr(int) *int
|
|
RetRPtr(int) (int, *int)
|
|
}
|
|
|
|
func main() {
|
|
x := &a.X{T: [32]byte{1, 2, 3, 4}}
|
|
var ix Intf = X{x}
|
|
t1 := ix.Get()
|
|
t2 := x.Get()
|
|
if !bytes.Equal(t1, t2) {
|
|
panic(t1)
|
|
}
|
|
|
|
p1 := ix.RetPtr(5)
|
|
p2 := x.RetPtr(7)
|
|
if *p1 != 6 || *p2 != 8 {
|
|
panic(*p1)
|
|
}
|
|
|
|
r1, r2 := ix.RetRPtr(10)
|
|
r3, r4 := x.RetRPtr(13)
|
|
if r1 != 11 || *r2 != 11 || r3 != 14 || *r4 != 14 {
|
|
panic("bad RetRPtr")
|
|
}
|
|
}
|