| // Copyright 2015 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 cgosotest | 
 |  | 
 | // This test verifies that Go can access C variables | 
 | // in shared object file via cgo. | 
 |  | 
 | /* | 
 | // intentionally write the same LDFLAGS differently | 
 | // to test correct handling of LDFLAGS. | 
 | #cgo windows CFLAGS: -DIMPORT_DLL | 
 | #cgo linux LDFLAGS: -L. -lcgosotest | 
 | #cgo dragonfly LDFLAGS: -L. -l cgosotest | 
 | #cgo freebsd LDFLAGS: -L. -l cgosotest | 
 | #cgo openbsd LDFLAGS: -L. -l cgosotest | 
 | #cgo solaris LDFLAGS: -L. -lcgosotest | 
 | #cgo netbsd LDFLAGS: -L. libcgosotest.so | 
 | #cgo darwin LDFLAGS: -L. libcgosotest.dylib | 
 | #cgo windows LDFLAGS: -L. libcgosotest.dll | 
 | #cgo aix LDFLAGS: -L. -l cgosotest | 
 |  | 
 | #include "cgoso_c.h" | 
 |  | 
 | const char* getVar() { | 
 | 	    return exported_var; | 
 | } | 
 | */ | 
 | import "C" | 
 |  | 
 | import "fmt" | 
 |  | 
 | func Test() { | 
 | 	const want = "Hello world" | 
 | 	got := C.GoString(C.getVar()) | 
 | 	if got != want { | 
 | 		panic(fmt.Sprintf("testExportedVar: got %q, but want %q", got, want)) | 
 | 	} | 
 | 	got = C.GoString(C.exported_var) | 
 | 	if got != want { | 
 | 		panic(fmt.Sprintf("testExportedVar: got %q, but want %q", got, want)) | 
 | 	} | 
 | } |