-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
misc/cgo/test: fix freebsd test failure by moving test to its own pac…
…kage. (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
- Loading branch information
Showing
2 changed files
with
39 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) | ||
} | ||
} |