mirror of
https://github.com/golang/go
synced 2024-11-08 04:56:16 -07:00
a2419221fd
The test uses functions from C that were introduced in OSX 1.12. Include stubs for those functions when compiling for 1.11 and earlier. This test really a compile-time test, it doesn't matter much what the executed code actually does. Use a nasty #define hack to work around the fact that cgo doesn't support static global variables. Update #24161 Fixes #26355 Change-Id: Icf6f7bc9b6b36cacc81d5d0e033a2ebaff7e0298 Reviewed-on: https://go-review.googlesource.com/123715 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
38 lines
993 B
Go
38 lines
993 B
Go
// Copyright 2018 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.
|
|
|
|
// +build darwin
|
|
|
|
package issue24161e1
|
|
|
|
/*
|
|
#cgo CFLAGS: -x objective-c
|
|
#cgo LDFLAGS: -framework CoreFoundation -framework Security
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
#include <Security/Security.h>
|
|
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101200
|
|
typedef CFStringRef SecKeyAlgorithm;
|
|
static CFDataRef SecKeyCreateSignature(SecKeyRef key, SecKeyAlgorithm algorithm, CFDataRef dataToSign, CFErrorRef *error){return NULL;}
|
|
#define kSecKeyAlgorithmECDSASignatureDigestX962SHA1 foo()
|
|
static SecKeyAlgorithm foo(void){return NULL;}
|
|
#endif
|
|
*/
|
|
import "C"
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func f1() {
|
|
C.SecKeyCreateSignature(0, C.kSecKeyAlgorithmECDSASignatureDigestX962SHA1, 0, nil)
|
|
}
|
|
|
|
func f2(e C.CFErrorRef) {
|
|
if desc := C.CFErrorCopyDescription(e); desc != 0 {
|
|
fmt.Println(desc)
|
|
}
|
|
}
|
|
|
|
func Test(t *testing.T) {}
|