summaryrefslogtreecommitdiff
path: root/test/bugs
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2010-03-05 10:43:33 -0800
committerIan Lance Taylor <iant@golang.org>2010-03-05 10:43:33 -0800
commit7b6c73d7c5e3ff562a0e3cbb5d07f736bc218a34 (patch)
tree51cba7650d9c4a63d1eae9e703e5826afb86a7a1 /test/bugs
parent5c2f140b43c83aafe77d5cd3ba5442afae97a39b (diff)
downloadgo-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.go26
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)
}