]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/test: fix freebsd test failure by moving test to its own package.
authorAlan Donovan <adonovan@google.com>
Mon, 3 Nov 2014 18:41:03 +0000 (13:41 -0500)
committerAlan Donovan <adonovan@google.com>
Mon, 3 Nov 2014 18:41:03 +0000 (13:41 -0500)
(The assertion depends on a per-package gensym counter whose
value varies based on what else is in the package.)

LGTM=khr
R=khr, rsc
CC=golang-codereviews
https://golang.org/cl/169930043

misc/cgo/test/issue9026.go
misc/cgo/test/issue9026/issue9026.go [new file with mode: 0644]

index b5d975f17a488d46371996b46abff91de83b32b5..8848d0e811818e690d64a127d04b2dd6510a1a97 100644 (file)
@@ -1,33 +1,9 @@
 package cgotest
 
-/*
-typedef struct {} git_merge_file_input;
-
-typedef struct {} git_merge_file_options;
-
-void git_merge_file(
-        git_merge_file_input *in,
-        git_merge_file_options *opts) {}
-*/
-import "C"
 import (
-       "fmt"
        "testing"
-)
 
-func test9026(t *testing.T) {
-       var in C.git_merge_file_input
-       var opts *C.git_merge_file_options
-       C.git_merge_file(&in, opts)
+       "./issue9026"
+)
 
-       // Test that the generated type names are deterministic.
-       // (Previously this would fail about 10% of the time.)
-       //
-       // Brittle: the assertion may fail spuriously when the algorithm
-       // changes, but should remain stable otherwise.
-       got := fmt.Sprintf("%T %T", in, opts)
-       want := "cgotest._Ctype_struct___12 *cgotest._Ctype_struct___13"
-       if got != want {
-               t.Errorf("Non-deterministic type names: got %s, want %s", got, want)
-       }
-}
+func test9026(t *testing.T) { issue9026.Test(t) }
diff --git a/misc/cgo/test/issue9026/issue9026.go b/misc/cgo/test/issue9026/issue9026.go
new file mode 100644 (file)
index 0000000..0af86e6
--- /dev/null
@@ -0,0 +1,36 @@
+package issue9026
+
+// This file appears in its own package since the assertion tests the
+// per-package counter used to create fresh identifiers.
+
+/*
+typedef struct {} git_merge_file_input;
+
+typedef struct {} git_merge_file_options;
+
+void git_merge_file(
+        git_merge_file_input *in,
+        git_merge_file_options *opts) {}
+*/
+import "C"
+import (
+       "fmt"
+       "testing"
+)
+
+func Test(t *testing.T) {
+       var in C.git_merge_file_input
+       var opts *C.git_merge_file_options
+       C.git_merge_file(&in, opts)
+
+       // Test that the generated type names are deterministic.
+       // (Previously this would fail about 10% of the time.)
+       //
+       // Brittle: the assertion may fail spuriously when the algorithm
+       // changes, but should remain stable otherwise.
+       got := fmt.Sprintf("%T %T", in, opts)
+       want := "issue9026._Ctype_struct___0 *issue9026._Ctype_struct___1"
+       if got != want {
+               t.Errorf("Non-deterministic type names: got %s, want %s", got, want)
+       }
+}