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 | 7b6c73d7c5e3ff562a0e3cbb5d07f736bc218a34 (patch) | |
tree | 51cba7650d9c4a63d1eae9e703e5826afb86a7a1 /test/bugs | |
parent | 5c2f140b43c83aafe77d5cd3ba5442afae97a39b (diff) | |
download | go-7b6c73d7c5e3ff562a0e3cbb5d07f736bc218a34.tar.gz |
Generate same output on all architectures.
Passing an argument to bug260 will indicate which alignments
are wrong.
R=r
CC=golang-dev
http://codereview.appspot.com/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 cbdd14876..6a6331e65 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) } |