mirror of
https://github.com/golang/go
synced 2024-11-12 10:00:25 -07:00
b2329e997b
R=golang-dev CC=golang-dev https://golang.org/cl/5445052
36 lines
784 B
Go
36 lines
784 B
Go
// Copyright 2011 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 cgotest
|
|
|
|
// const char *greeting = "hello, world";
|
|
import "C"
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
"unsafe"
|
|
)
|
|
|
|
const greeting = "hello, world"
|
|
|
|
type testPair struct {
|
|
Name string
|
|
Got, Want interface{}
|
|
}
|
|
|
|
var testPairs = []testPair{
|
|
{"GoString", C.GoString(C.greeting), greeting},
|
|
{"GoStringN", C.GoStringN(C.greeting, 5), greeting[:5]},
|
|
{"GoBytes", C.GoBytes(unsafe.Pointer(C.greeting), 5), []byte(greeting[:5])},
|
|
}
|
|
|
|
func testHelpers(t *testing.T) {
|
|
for _, pair := range testPairs {
|
|
if !reflect.DeepEqual(pair.Got, pair.Want) {
|
|
t.Errorf("%s: got %#v, want %#v", pair.Name, pair.Got, pair.Want)
|
|
}
|
|
}
|
|
}
|