From 62d12386e1b3489665066272615dd6bc3a434035 Mon Sep 17 00:00:00 2001 From: adman Date: Tue, 5 May 2026 13:57:02 +0200 Subject: [PATCH] improve chunk comparison by adding custom storage comparer and ignoring unexported fields --- level/anvil/level_test.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/level/anvil/level_test.go b/level/anvil/level_test.go index 08244d0..8434dd5 100644 --- a/level/anvil/level_test.go +++ b/level/anvil/level_test.go @@ -13,6 +13,7 @@ import ( "github.com/admin-else/strom/nbt" "github.com/admin-else/strom/util" "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" ) func TestLevel(t *testing.T) { @@ -109,10 +110,20 @@ func TestConverToPacket(t *testing.T) { t.Errorf("Failed to load chunk from file: %v", err) return } + var storageComparer = cmp.Comparer(func(a, b *level.Storage) bool { + if a == nil && b == nil { + return true + } + if a == nil || b == nil { + return false + } + return a.Equals(b) + }) + if !aChunk.Equals(packetChunk) { - t.Errorf("Chunk is different: %v", cmp.Diff(aChunk, packetChunk)) + t.Errorf("Chunk is different: %v", cmp.Diff(aChunk, packetChunk, storageComparer, cmpopts.IgnoreUnexported(level.Chunk{}, level.Section{}, level.Storage{}))) } if !bChunk.Equals(aChunk) { - t.Errorf("Chunk is different: %v", cmp.Diff(bChunk, aChunk)) + t.Errorf("Chunk is different: %v", cmp.Diff(bChunk, aChunk, storageComparer, cmpopts.IgnoreUnexported(level.Chunk{}, level.Section{}, level.Storage{}))) } }