github.com/huandu/go@v0.0.0-20151114150818-04e615e41150/misc/cgo/test/issue8694.go (about) 1 // Copyright 2014 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. 4 5 package cgotest 6 7 /* 8 #include <complex.h> 9 10 complex float complexFloatSquared(complex float a) { return a*a; } 11 complex double complexDoubleSquared(complex double a) { return a*a; } 12 */ 13 import "C" 14 15 import ( 16 "runtime" 17 "testing" 18 ) 19 20 func test8694(t *testing.T) { 21 if runtime.GOARCH == "arm" { 22 t.Skip("test8694 is disabled on ARM because 5l cannot handle thumb library.") 23 } 24 // Really just testing that this compiles, but check answer anyway. 25 x := complex64(2 + 3i) 26 x2 := x * x 27 cx2 := C.complexFloatSquared(x) 28 if cx2 != x2 { 29 t.Errorf("C.complexFloatSquared(%v) = %v, want %v", x, cx2, x2) 30 } 31 32 y := complex128(2 + 3i) 33 y2 := y * y 34 cy2 := C.complexDoubleSquared(y) 35 if cy2 != y2 { 36 t.Errorf("C.complexDoubleSquared(%v) = %v, want %v", y, cy2, y2) 37 } 38 }