summaryrefslogtreecommitdiff
path: root/pkg/btrfs/btrfssum
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/btrfs/btrfssum')
-rw-r--r--pkg/btrfs/btrfssum/csum.go78
-rw-r--r--pkg/btrfs/btrfssum/csum_test.go35
2 files changed, 0 insertions, 113 deletions
diff --git a/pkg/btrfs/btrfssum/csum.go b/pkg/btrfs/btrfssum/csum.go
deleted file mode 100644
index 22d8149..0000000
--- a/pkg/btrfs/btrfssum/csum.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package btrfssum
-
-import (
- "encoding/binary"
- "encoding/hex"
- "fmt"
- "hash/crc32"
-
- "lukeshu.com/btrfs-tools/pkg/util"
-)
-
-type CSum [0x20]byte
-
-func (csum CSum) String() string {
- return hex.EncodeToString(csum[:])
-}
-
-func (csum CSum) Fmt(typ CSumType) string {
- return hex.EncodeToString(csum[:typ.Size()])
-}
-
-func (csum CSum) Format(f fmt.State, verb rune) {
- util.FormatByteArrayStringer(csum, csum[:], f, verb)
-}
-
-type CSumType uint16
-
-const (
- TYPE_CRC32 = CSumType(iota)
- TYPE_XXHASH
- TYPE_SHA256
- TYPE_BLAKE2
-)
-
-func (typ CSumType) String() string {
- names := map[CSumType]string{
- TYPE_CRC32: "crc32c",
- TYPE_XXHASH: "xxhash64",
- TYPE_SHA256: "sha256",
- TYPE_BLAKE2: "blake2",
- }
- if name, ok := names[typ]; ok {
- return name
- }
- return fmt.Sprintf("%d", typ)
-}
-
-func (typ CSumType) Size() int {
- sizes := map[CSumType]int{
- TYPE_CRC32: 4,
- TYPE_XXHASH: 8,
- TYPE_SHA256: 32,
- TYPE_BLAKE2: 32,
- }
- if size, ok := sizes[typ]; ok {
- return size
- }
- return len(CSum{})
-}
-
-func (typ CSumType) Sum(data []byte) (CSum, error) {
- switch typ {
- case TYPE_CRC32:
- crc := crc32.Update(0, crc32.MakeTable(crc32.Castagnoli), data)
-
- var ret CSum
- binary.LittleEndian.PutUint32(ret[:], crc)
- return ret, nil
- case TYPE_XXHASH:
- panic("not implemented")
- case TYPE_SHA256:
- panic("not implemented")
- case TYPE_BLAKE2:
- panic("not implemented")
- default:
- return CSum{}, fmt.Errorf("unknown checksum type: %v", typ)
- }
-}
diff --git a/pkg/btrfs/btrfssum/csum_test.go b/pkg/btrfs/btrfssum/csum_test.go
deleted file mode 100644
index c47409c..0000000
--- a/pkg/btrfs/btrfssum/csum_test.go
+++ /dev/null
@@ -1,35 +0,0 @@
-package btrfssum_test
-
-import (
- "fmt"
- "testing"
-
- "github.com/stretchr/testify/assert"
-
- "lukeshu.com/btrfs-tools/pkg/btrfs/btrfssum"
-)
-
-func TestCSumFormat(t *testing.T) {
- t.Parallel()
- type TestCase struct {
- InputSum btrfssum.CSum
- InputFmt string
- Output string
- }
- csum := btrfssum.CSum{0xbd, 0x7b, 0x41, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
- testcases := map[string]TestCase{
- "s": {InputSum: csum, InputFmt: "%s", Output: "bd7b41f400000000000000000000000000000000000000000000000000000000"},
- "x": {InputSum: csum, InputFmt: "%x", Output: "bd7b41f400000000000000000000000000000000000000000000000000000000"},
- "v": {InputSum: csum, InputFmt: "%v", Output: "bd7b41f400000000000000000000000000000000000000000000000000000000"},
- "70s": {InputSum: csum, InputFmt: "|% 70s", Output: "| bd7b41f400000000000000000000000000000000000000000000000000000000"},
- "#180v": {InputSum: csum, InputFmt: "%#180v", Output: " btrfssum.CSum{0xbd, 0x7b, 0x41, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}"},
- }
- for tcName, tc := range testcases {
- tc := tc
- t.Run(tcName, func(t *testing.T) {
- t.Parallel()
- actual := fmt.Sprintf(tc.InputFmt, tc.InputSum)
- assert.Equal(t, tc.Output, actual)
- })
- }
-}