| // Copyright 2017 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 |
| |
| /* |
| #include <stdlib.h> |
| #include <string.h> |
| |
| char* Issue6907CopyString(_GoString_ s) { |
| size_t n; |
| const char *p; |
| char *r; |
| |
| n = _GoStringLen(s); |
| p = _GoStringPtr(s); |
| r = malloc(n + 1); |
| memmove(r, p, n); |
| r[n] = '\0'; |
| return r; |
| } |
| */ |
| import "C" |
| |
| import "testing" |
| |
| func test6907(t *testing.T) { |
| want := "yarn" |
| if got := C.GoString(C.Issue6907CopyString(want)); got != want { |
| t.Errorf("C.GoString(C.Issue6907CopyString(%q)) == %q, want %q", want, got, want) |
| } |
| } |