improve chunk comparison by adding custom storage comparer and ignoring unexported fields

This commit is contained in:
adman
2026-05-05 13:57:02 +02:00
parent 00ea02a529
commit 62d12386e1
+13 -2
View File
@@ -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{})))
}
}