936615752a
Copy all the misc/cgo files from the gc toolchain into libgo/misc. These will be used for testing purposes by later changes to the gotools directory. Reviewed-on: https://go-review.googlesource.com/46721 From-SVN: r249674
36 lines
783 B
Go
36 lines
783 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)
|
|
}
|
|
}
|
|
}
|