From a4657f996d98378c06cc7da4d2c69539c19dae32 Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Tue, 7 Apr 2020 14:52:17 +1000 Subject: device: move stats fields back down and add test diagnostics This reverts the movement of fields from d49f4e9. That commit was cherry-picked from another branch where a field had changed and misaligned the atomic fields. After cherry-picking, moving the fields was no longer necessary but got dragged along. Signed-off-by: David Crawshaw --- device/peer_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'device/peer_test.go') diff --git a/device/peer_test.go b/device/peer_test.go index de87ab6..b389f1e 100644 --- a/device/peer_test.go +++ b/device/peer_test.go @@ -6,6 +6,7 @@ package device import ( + "reflect" "testing" "unsafe" ) @@ -24,6 +25,19 @@ func checkAlignment(t *testing.T, name string, offset uintptr) { // hard segfault at runtime. func TestPeerAlignment(t *testing.T) { var p Peer + + typ := reflect.TypeOf(p) + t.Logf("Peer type size: %d, with fields:", typ.Size()) + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + t.Logf("\t%30s\toffset=%3v\t(type size=%3d, align=%d)", + field.Name, + field.Offset, + field.Type.Size(), + field.Type.Align(), + ) + } + checkAlignment(t, "Peer.stats", unsafe.Offsetof(p.stats)) checkAlignment(t, "Peer.isRunning", unsafe.Offsetof(p.isRunning)) } -- cgit v1.2.3-54-g00ecf