]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: add sizeof test for ssa types
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 7 Mar 2016 02:05:41 +0000 (18:05 -0800)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 7 Mar 2016 22:41:22 +0000 (22:41 +0000)
Fix some test output while we're here.

Change-Id: I265cedc222e078eff120f268b92451e12b0400b2
Reviewed-on: https://go-review.googlesource.com/20294
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/sizeof_test.go
src/cmd/compile/internal/ssa/sizeof_test.go [new file with mode: 0644]
src/cmd/internal/obj/sizeof_test.go

index a0ae7ccdb9dd25217f083341f33f3307ce009660..199b5ce3c69e54d474e7799a1f460fe3c91ef9f8 100644 (file)
@@ -37,7 +37,7 @@ func TestSizeof(t *testing.T) {
                }
                got := reflect.TypeOf(tt.val).Size()
                if want != got {
-                       t.Errorf("unsafe.Sizeof(%T): want %d, got %d", tt.val, want, got)
+                       t.Errorf("unsafe.Sizeof(%T) = %d, want %d", tt.val, got, want)
                }
        }
 }
diff --git a/src/cmd/compile/internal/ssa/sizeof_test.go b/src/cmd/compile/internal/ssa/sizeof_test.go
new file mode 100644 (file)
index 0000000..2232913
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !nacl
+
+package ssa
+
+import (
+       "reflect"
+       "testing"
+       "unsafe"
+)
+
+// Assert that the size of important structures do not change unexpectedly.
+
+func TestSizeof(t *testing.T) {
+       const _64bit = unsafe.Sizeof(uintptr(0)) == 8
+
+       var tests = []struct {
+               val    interface{} // type as a value
+               _32bit uintptr     // size on 32bit platforms
+               _64bit uintptr     // size on 64bit platforms
+       }{
+               {Value{}, 60, 104},
+               {Block{}, 124, 232},
+       }
+
+       for _, tt := range tests {
+               want := tt._32bit
+               if _64bit {
+                       want = tt._64bit
+               }
+               got := reflect.TypeOf(tt.val).Size()
+               if want != got {
+                       t.Errorf("unsafe.Sizeof(%T) = %d, want %d", tt.val, got, want)
+               }
+       }
+}
index 70e62d0f9fc07325fe5ccc509c8602a22f5f06c3..f97cac73f62cb9d3fd40865427c937ed5e085dc0 100644 (file)
@@ -34,7 +34,7 @@ func TestSizeof(t *testing.T) {
                }
                got := reflect.TypeOf(tt.val).Size()
                if want != got {
-                       t.Errorf("unsafe.Sizeof(%T): want %d, got %d", tt.val, want, got)
+                       t.Errorf("unsafe.Sizeof(%T) = %d, want %d", tt.val, got, want)
                }
        }
 }