Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(83)

Side by Side Diff: misc/cgo/test/issue6612.go

Issue 20060044: code review 20060044: [release-branch.go1.2] cmd/cgo: stop using compiler err... (Closed)
Patch Set: diff -r 0d584450b8e8 https://code.google.com/p/go Created 11 years, 4 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « misc/cgo/test/cgo_test.go ('k') | src/cmd/cgo/doc.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 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 // golang.org/issue/6612
6 // Test new scheme for deciding whether C.name is an expression, type, constant.
7 // Clang silences some warnings when the name is a #defined macro, so test those too
8 // (even though we now use errors exclusively, not warnings).
9
10 package cgotest
11
12 /*
13 void myfunc(void) {}
14 int myvar = 5;
15 const char *mytext = "abcdef";
16 typedef int mytype;
17 enum {
18 myenum = 1234,
19 };
20
21 #define myfunc_def myfunc
22 #define myvar_def myvar
23 #define mytext_def mytext
24 #define mytype_def mytype
25 #define myenum_def myenum
26 #define myint_def 12345
27 #define myfloat_def 1.5
28 #define mystring_def "hello"
29 */
30 import "C"
31
32 import "testing"
33
34 func testNaming(t *testing.T) {
35 C.myfunc()
36 C.myfunc_def()
37 if v := C.myvar; v != 5 {
38 t.Errorf("C.myvar = %d, want 5", v)
39 }
40 if v := C.myvar_def; v != 5 {
41 t.Errorf("C.myvar_def = %d, want 5", v)
42 }
43 if s := C.GoString(C.mytext); s != "abcdef" {
44 t.Errorf("C.mytext = %q, want %q", s, "abcdef")
45 }
46 if s := C.GoString(C.mytext_def); s != "abcdef" {
47 t.Errorf("C.mytext_def = %q, want %q", s, "abcdef")
48 }
49 if c := C.myenum; c != 1234 {
50 t.Errorf("C.myenum = %v, want 1234", c)
51 }
52 if c := C.myenum_def; c != 1234 {
53 t.Errorf("C.myenum_def = %v, want 1234", c)
54 }
55 {
56 const c = C.myenum
57 if c != 1234 {
58 t.Errorf("C.myenum as const = %v, want 1234", c)
59 }
60 }
61 {
62 const c = C.myenum_def
63 if c != 1234 {
64 t.Errorf("C.myenum as const = %v, want 1234", c)
65 }
66 }
67 if c := C.myint_def; c != 12345 {
68 t.Errorf("C.myint_def = %v, want 12345", c)
69 }
70 {
71 const c = C.myint_def
72 if c != 12345 {
73 t.Errorf("C.myint as const = %v, want 12345", c)
74 }
75 }
76
77 // This would be nice, but it has never worked.
78 /*
79 if c := C.myfloat_def; c != 1.5 {
80 t.Errorf("C.myint_def = %v, want 1.5", c)
81 }
82 {
83 const c = C.myfloat_def
84 if c != 1.5 {
85 t.Errorf("C.myint as const = %v, want 1.5", c)
86 }
87 }
88 */
89
90 if s := C.mystring_def; s != "hello" {
91 t.Errorf("C.mystring_def = %q, want %q", s, "hello")
92 }
93 }
OLDNEW
« no previous file with comments | « misc/cgo/test/cgo_test.go ('k') | src/cmd/cgo/doc.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b