| // Copyright 2014 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 <complex.h> |
| |
| complex float complexFloatSquared(complex float a) { return a*a; } |
| complex double complexDoubleSquared(complex double a) { return a*a; } |
| */ |
| import "C" |
| |
| import ( |
| "runtime" |
| "testing" |
| ) |
| |
| func test8694(t *testing.T) { |
| if runtime.GOARCH == "arm" { |
| t.Skip("test8694 is disabled on ARM because 5l cannot handle thumb library.") |
| } |
| // Really just testing that this compiles, but check answer anyway. |
| x := complex64(2 + 3i) |
| x2 := x * x |
| cx2 := C.complexFloatSquared(x) |
| if cx2 != x2 { |
| t.Errorf("C.complexFloatSquared(%v) = %v, want %v", x, cx2, x2) |
| } |
| |
| y := complex128(2 + 3i) |
| y2 := y * y |
| cy2 := C.complexDoubleSquared(y) |
| if cy2 != y2 { |
| t.Errorf("C.complexDoubleSquared(%v) = %v, want %v", y, cy2, y2) |
| } |
| } |