blob: 8a14ce6d7aa48b3f525b93301248cf5545ebe4f0 [file] [log] [blame]
Matthew Dempsky2c110a12014-08-27 20:15:05 -04001// 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// Issue 8092. Test that linker defined symbols (e.g., text, data) don't
6// conflict with C symbols.
7
8package cgotest
9
10/*
11char text[] = "text";
12char data[] = "data";
13char *ctext(void) { return text; }
14char *cdata(void) { return data; }
15*/
16import "C"
17
18import "testing"
19
20func test8092(t *testing.T) {
21 tests := []struct {
22 s string
23 a, b *C.char
24 }{
25 {"text", &C.text[0], C.ctext()},
26 {"data", &C.data[0], C.cdata()},
27 }
28 for _, test := range tests {
29 if test.a != test.b {
30 t.Errorf("%s: pointer mismatch: %v != %v", test.s, test.a, test.b)
31 }
32 if got := C.GoString(test.a); got != test.s {
33 t.Errorf("%s: points at %#v, want %#v", test.s, got, test.s)
34 }
35 }
36}