diff options
| author | Ian Lance Taylor <iant@golang.org> | 2010-03-05 10:43:33 -0800 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2010-03-05 10:43:33 -0800 |
| commit | 4b22e1bdb656e8d3e337ea6e57deadede4a9db10 (patch) | |
| tree | f162d833ff7d0ae1b5e1727d27e6bfccc654ec48 /test/bugs | |
| parent | a1458298737dd52783df7f28f92e120bf56b6972 (diff) | |
| download | go-4b22e1bdb656e8d3e337ea6e57deadede4a9db10.tar.xz | |
Generate same output on all architectures.
Passing an argument to bug260 will indicate which alignments
are wrong.
R=r
CC=golang-dev
https://golang.org/cl/231042
Diffstat (limited to 'test/bugs')
| -rw-r--r-- | test/bugs/bug260.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/test/bugs/bug260.go b/test/bugs/bug260.go index cbdd148766..6a6331e65b 100644 --- a/test/bugs/bug260.go +++ b/test/bugs/bug260.go @@ -1,4 +1,4 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out +// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug260 failed // Test that structures pack densely, according to the alignment of the largest field. @@ -15,27 +15,41 @@ type T2 struct { x uint16 } type T4 struct { x uint32 } func main() { + report := len(os.Args) > 1 status := 0 var b1 [10]T1 a0, _ := strconv.Btoui64(fmt.Sprintf("%p", &b1[0])[2:], 16) a1, _ := strconv.Btoui64(fmt.Sprintf("%p", &b1[1])[2:], 16) if a1 != a0 + 1 { - fmt.Println("FAIL: alignment should be 1, is", a1-a0) + fmt.Println("FAIL") + if report { + fmt.Println("alignment should be 1, is", a1-a0) + } status = 1 } var b2 [10]T2 a0, _ = strconv.Btoui64(fmt.Sprintf("%p", &b2[0])[2:], 16) a1, _ = strconv.Btoui64(fmt.Sprintf("%p", &b2[1])[2:], 16) if a1 != a0 + 2 { - fmt.Println("FAIL: alignment should be 2, is", a1-a0) - status = 1 + if status == 0 { + fmt.Println("FAIL") + status = 1 + } + if report { + fmt.Println("alignment should be 2, is", a1-a0) + } } var b4 [10]T4 a0, _ = strconv.Btoui64(fmt.Sprintf("%p", &b4[0])[2:], 16) a1, _ = strconv.Btoui64(fmt.Sprintf("%p", &b4[1])[2:], 16) if a1 != a0 + 4 { - fmt.Println("FAIL: alignment should be 4, is", a1-a0) - status = 1 + if status == 0 { + fmt.Println("FAIL") + status = 1 + } + if report { + fmt.Println("alignment should be 4, is", a1-a0) + } } os.Exit(status) } |
