1 // Copyright 2017 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build darwin && cgo && !internal
6 // +build darwin,cgo,!internal
11 #cgo LDFLAGS: -framework CoreFoundation
12 #include <CoreFoundation/CoreFoundation.h>
21 func test21897(t *testing.T) {
22 // Please write barrier, kick in soon.
23 defer debug.SetGCPercent(debug.SetGCPercent(1))
25 for i := 0; i < 10000; i++ {
29 // Allocate some memory, so eventually the write barrier is enabled
30 // and it will see writes of bad pointers in the test* functions below.
31 byteSliceSink = make([]byte, 1024)
35 var byteSliceSink []byte
37 func testCFNumberRef() {
39 xCFNumberRef = C.CFNumberCreate(C.kCFAllocatorSystemDefault, C.kCFNumberSInt64Type, unsafe.Pointer(&v))
40 //fmt.Printf("CFNumberRef: %x\n", uintptr(unsafe.Pointer(xCFNumberRef)))
43 var xCFNumberRef C.CFNumberRef
45 func testCFDateRef() {
46 xCFDateRef = C.CFDateCreate(C.kCFAllocatorSystemDefault, 0) // 0 value is 1 Jan 2001 00:00:00 GMT
47 //fmt.Printf("CFDateRef: %x\n", uintptr(unsafe.Pointer(xCFDateRef)))
50 var xCFDateRef C.CFDateRef
52 func testCFBooleanRef() {
53 xCFBooleanRef = C.kCFBooleanFalse
54 //fmt.Printf("CFBooleanRef: %x\n", uintptr(unsafe.Pointer(xCFBooleanRef)))
57 var xCFBooleanRef C.CFBooleanRef