From 17833fa13d5a7dcd79ad507fe4abf96b4a4a898b Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 15 Mar 2023 21:38:56 -0600 Subject: btrfsprim: Fix Key.Mm(), and add Key.Pp() --- lib/btrfs/btrfsprim/key_test.go | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lib/btrfs/btrfsprim/key_test.go (limited to 'lib/btrfs/btrfsprim/key_test.go') diff --git a/lib/btrfs/btrfsprim/key_test.go b/lib/btrfs/btrfsprim/key_test.go new file mode 100644 index 0000000..6274b43 --- /dev/null +++ b/lib/btrfs/btrfsprim/key_test.go @@ -0,0 +1,59 @@ +// Copyright (C) 2023 Luke Shumaker +// +// SPDX-License-Identifier: GPL-2.0-or-later + +package btrfsprim + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func k(objID ObjID, typ ItemType, offset uint64) Key { + return Key{ + ObjectID: objID, + ItemType: typ, + Offset: offset, + } +} + +func eq(t *testing.T, act, exp Key) { + t.Helper() + assert.Equal(t, exp, act) +} + +func ppEq(t *testing.T, in, exp Key) { + t.Helper() + eq(t, in.Pp(), exp) + if in != MaxKey { + eq(t, exp.Mm(), in) + } +} + +func mmEq(t *testing.T, in, exp Key) { + t.Helper() + eq(t, in.Mm(), exp) + if in != (Key{}) { + eq(t, exp.Pp(), in) + } +} + +func TestKey(t *testing.T) { + t.Parallel() + + eq(t, MaxKey, k(18446744073709551615, 255, 18446744073709551615)) + + // pp + ppEq(t, k(0, 0, 0), k(0, 0, 1)) + ppEq(t, k(0, 0, 18446744073709551615), k(0, 1, 0)) + ppEq(t, k(0, 255, 0), k(0, 255, 1)) + ppEq(t, k(0, 255, 18446744073709551615), k(1, 0, 0)) + ppEq(t, MaxKey, k(18446744073709551615, 255, 18446744073709551615)) + + // mm + mmEq(t, MaxKey, k(18446744073709551615, 255, 18446744073709551614)) + mmEq(t, k(18446744073709551615, 255, 0), k(18446744073709551615, 254, 18446744073709551615)) + mmEq(t, k(18446744073709551615, 0, 0), k(18446744073709551614, 255, 18446744073709551615)) + mmEq(t, k(0, 0, 0), k(0, 0, 0)) +} -- cgit v1.2.3-54-g00ecf