// Copyright 2016 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. // Issue 14838. add CBytes function package cgotest /* #include int check_cbytes(char *b, size_t l) { int i; for (i = 0; i < l; i++) { if (b[i] != i) { return 0; } } return 1; } */ import "C" import ( "testing" "unsafe" ) func test14838(t *testing.T) { data := []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} cData := C.CBytes(data) defer C.free(cData) if C.check_cbytes((*C.char)(cData), C.size_t(len(data))) == 0 { t.Fatalf("mismatched data: expected %v, got %v", data, (*(*[10]byte)(unsafe.Pointer(cData)))[:]) } }