Commit e1cfb6f3 authored by Gustavo Niemeyer's avatar Gustavo Niemeyer

cgo: fix GoBytes

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4956051
parent 4ca2172f
......@@ -12,6 +12,7 @@ CGOFILES=\
callback.go\
env.go\
exports.go\
helpers.go\
issue1222.go\
issue1328.go\
issue1560.go\
......
......@@ -65,7 +65,7 @@ func testCallbackPanic(t *testing.T) {
func testCallbackPanicLoop(t *testing.T) {
// Make sure we don't blow out m->g0 stack.
for i := 0; i < 100000; i++ {
TestCallbackPanic(t)
testCallbackPanic(t)
}
}
......
......@@ -26,5 +26,6 @@ func TestBlocking(t *testing.T) { testBlocking(t) }
func Test1328(t *testing.T) { test1328(t) }
func TestParallelSleep(t *testing.T) { testParallelSleep(t) }
func TestSetEnv(t *testing.T) { testSetEnv(t) }
func TestHelpers(t *testing.T) { testHelpers(t) }
func BenchmarkCgoCall(b *testing.B) { benchCgoCall(b) }
// 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.Got, pair.Want)
}
}
}
......@@ -80,6 +80,8 @@ runtime·gobytes(byte *p, int32 n)
Slice sl;
sl.array = runtime·mallocgc(n, FlagNoPointers, 1, 0);
sl.len = n;
sl.cap = n;
runtime·memmove(sl.array, p, n);
return sl;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment