mirror of
https://github.com/golang/go
synced 2024-11-14 08:50:22 -07:00
b234fdb5cd
The test for issue 8945 was marked to only run on gccgo, but there was no reason for that. It broke for gccgo using GCC 10, because GCC 10 defaults to -fno-common. Make the test run on gc, and split it into test.go and testx.go to make it work with GCC 10. The test for issue 9026 used two identical structs which GCC 10 turns into the same type. The point of the test is not that the structs are identical, but that they are handled in a particular order. So make them different. Updates #8945 Updates #9026 Change-Id: I000fb02f88f346cfbbe5dbefedd944a2c64e8d8e Reviewed-on: https://go-review.googlesource.com/c/go/+/211217 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
37 lines
947 B
Go
37 lines
947 B
Go
package issue9026
|
|
|
|
// This file appears in its own package since the assertion tests the
|
|
// per-package counter used to create fresh identifiers.
|
|
|
|
/*
|
|
typedef struct { int i; } git_merge_file_input;
|
|
|
|
typedef struct { int j; } 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)
|
|
}
|
|
}
|