From 56ac8e154ea18ee86330fd452e56b86987969a12 Mon Sep 17 00:00:00 2001 From: OpenCode Date: Wed, 5 Aug 2026 19:36:26 +0200 Subject: [PATCH] test: add 4 decode regression tests for recently fixed packets - entity_equipment 1.8 (nbt TAG_End fix) - entity_equipment 26.2 (topBitSetTerminatedArray fix) - entity_metadata 1.8 (entityMetadataLoop mergeCompareTo) - spawn_entity_living 1.8 (entityMetadata mergeCompareTo) These ensure packets that were previously broken stay working. --- .gitignore | 1 + .../testdata/reg_55_2b76af8b937b1e8f_test.go | 18 ++++++++++++++++++ .../testdata/rt_10_0c20c77ea68496bd_test.go | 18 ++++++++++++++++++ .../testdata/rt_31_df2df88561529208_test.go | 18 ++++++++++++++++++ .../testdata/rt_8_1d0089bbe86a1648_test.go | 18 ++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 cmd/strom/print_replay/testdata/reg_55_2b76af8b937b1e8f_test.go create mode 100644 cmd/strom/print_replay/testdata/rt_10_0c20c77ea68496bd_test.go create mode 100644 cmd/strom/print_replay/testdata/rt_31_df2df88561529208_test.go create mode 100644 cmd/strom/print_replay/testdata/rt_8_1d0089bbe86a1648_test.go diff --git a/.gitignore b/.gitignore index fdb675c..6dde320 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .idea/ .failed_packets/ .vscode/proto_generator +proto_generator diff --git a/cmd/strom/print_replay/testdata/reg_55_2b76af8b937b1e8f_test.go b/cmd/strom/print_replay/testdata/reg_55_2b76af8b937b1e8f_test.go new file mode 100644 index 0000000..bac9b1e --- /dev/null +++ b/cmd/strom/print_replay/testdata/reg_55_2b76af8b937b1e8f_test.go @@ -0,0 +1,18 @@ +package failed_packets_test + +import ( + "bytes" + "testing" + + generated "github.com/admin-else/strom/mc/proto_generated/v1_8" +) + +// Decode regression: spawn_entity_living (1.8) - entityMetadata mergeCompareTo +func TestRegressionPacket2B76AF8B937B1E8F(t *testing.T) { + p := &generated.PlayToClientPacketSpawnEntityLiving{} + b := bytes.NewReader([]byte{0x4c, 0x65, 0xff, 0xff, 0xed, 0x66, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x29, 0xe6, 0x91, 0x0, 0x91, 0x0, 0x0, 0xfd, 0x8d, 0x0, 0x0, 0x0, 0x0, 0x21, 0x1, 0x2c, 0x82, 0x0, 0x12, 0x4, 0x3, 0x0, 0x4, 0x0, 0x66, 0x41, 0x20, 0x0, 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x9, 0x0, 0xc, 0x0, 0xf, 0x0, 0x7f}) + err := p.Decode(b) + if err != nil { + t.Fatalf("regression: decode failed: %v", err) + } +} diff --git a/cmd/strom/print_replay/testdata/rt_10_0c20c77ea68496bd_test.go b/cmd/strom/print_replay/testdata/rt_10_0c20c77ea68496bd_test.go new file mode 100644 index 0000000..eee3a98 --- /dev/null +++ b/cmd/strom/print_replay/testdata/rt_10_0c20c77ea68496bd_test.go @@ -0,0 +1,18 @@ +package failed_packets_test + +import ( + "bytes" + "testing" + + generated "github.com/admin-else/strom/mc/proto_generated/v1_8" +) + +// Decode regression: entity_equipment (1.8) - nbt TAG_End fix +func TestRegressionPacket0C20C77EA68496BD(t *testing.T) { + p := &generated.PlayToClientPacketEntityEquipment{} + b := bytes.NewReader([]byte{0x89, 0x16, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) + err := p.Decode(b) + if err != nil { + t.Fatalf("regression: decode failed: %v", err) + } +} diff --git a/cmd/strom/print_replay/testdata/rt_31_df2df88561529208_test.go b/cmd/strom/print_replay/testdata/rt_31_df2df88561529208_test.go new file mode 100644 index 0000000..cf5ea66 --- /dev/null +++ b/cmd/strom/print_replay/testdata/rt_31_df2df88561529208_test.go @@ -0,0 +1,18 @@ +package failed_packets_test + +import ( + "bytes" + "testing" + + generated "github.com/admin-else/strom/mc/proto_generated/v1_8" +) + +// Decode regression: entity_metadata (1.8) - entityMetadataLoop mergeCompareTo +func TestRegressionPacketDF2DF88561529208(t *testing.T) { + p := &generated.PlayToClientPacketEntityMetadata{} + b := bytes.NewReader([]byte{0x69, 0x0, 0x0, 0x21, 0x1, 0x2c, 0x82, 0x0, 0x3, 0x0, 0x4, 0x0, 0x66, 0x40, 0x80, 0x0, 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x9, 0x0, 0xc, 0x0, 0xf, 0x0, 0x7f}) + err := p.Decode(b) + if err != nil { + t.Fatalf("regression: decode failed: %v", err) + } +} diff --git a/cmd/strom/print_replay/testdata/rt_8_1d0089bbe86a1648_test.go b/cmd/strom/print_replay/testdata/rt_8_1d0089bbe86a1648_test.go new file mode 100644 index 0000000..8d2476f --- /dev/null +++ b/cmd/strom/print_replay/testdata/rt_8_1d0089bbe86a1648_test.go @@ -0,0 +1,18 @@ +package failed_packets_test + +import ( + "bytes" + "testing" + + generated "github.com/admin-else/strom/mc/proto_generated/v26_2" +) + +// Decode regression: entity_equipment (26.2) - topBitSetTerminatedArray +func TestRegressionPacket1D0089BBE86A1648(t *testing.T) { + p := &generated.PlayToClientPacketEntityEquipment{} + b := bytes.NewReader([]byte{0x81, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) + err := p.Decode(b) + if err != nil { + t.Fatalf("regression: decode failed: %v", err) + } +}