diff options
Diffstat (limited to 'lib/btrfs/types_node_test.go')
-rw-r--r-- | lib/btrfs/types_node_test.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/btrfs/types_node_test.go b/lib/btrfs/types_node_test.go new file mode 100644 index 0000000..2748c38 --- /dev/null +++ b/lib/btrfs/types_node_test.go @@ -0,0 +1,35 @@ +// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com> +// +// SPDX-License-Identifier: GPL-2.0-or-later + +package btrfs_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "git.lukeshu.com/btrfs-progs-ng/lib/binstruct" + "git.lukeshu.com/btrfs-progs-ng/lib/btrfs" + "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfssum" +) + +func FuzzRoundTripNode(f *testing.F) { + f.Fuzz(func(t *testing.T, inDat []byte) { + t.Logf("dat=(%d)%q", len(inDat), inDat) + node := btrfs.Node{ + ChecksumType: btrfssum.TYPE_CRC32, + } + n, err := binstruct.Unmarshal(inDat, &node) + if err != nil { + t.Logf("err=%v", err) + //require.Equal(t, 0, n) + } else { + require.Equal(t, len(inDat), n) + + outDat, err := binstruct.Marshal(node) + require.NoError(t, err) + require.Equal(t, inDat[:], outDat) + } + }) +} |