github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/kbfs/libkbfs/disk_block_cache_helper_test.go (about)

     1  package libkbfs
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/keybase/client/go/kbfs/kbfscodec"
     8  	"github.com/keybase/client/go/kbfs/tlf"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func makeTime(data []byte) time.Time {
    13  	var t time.Time
    14  	err := t.UnmarshalBinary(data)
    15  	if err != nil {
    16  		panic(err)
    17  	}
    18  	return t
    19  }
    20  
    21  var testLRUTime = makeTime([]byte{
    22  	// Version.
    23  	0x1,
    24  	// Seconds.
    25  	0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9,
    26  	// Nanoseconds.
    27  	0xa, 0xb, 0xc, 0xd,
    28  	// Zone offset.
    29  	0xe, 0xf,
    30  })
    31  
    32  var testMetaDb = DiskBlockCacheMetadata{
    33  	TlfID:            tlf.FakeID(1, tlf.Public),
    34  	LRUTime:          legacyEncodedTime{testLRUTime},
    35  	BlockSize:        0xface,
    36  	FinishedPrefetch: true,
    37  	Tag:              "mark",
    38  }
    39  
    40  // This was generated by starting with []byte{} in
    41  // TestDiskBlockCacheMetadataEncodeHardcoded and copying the data in
    42  // the error message for its require.Equal.
    43  var testMetaDbEncoded = []byte{
    44  	0x86, 0xa9, 0x42, 0x6c, 0x6f, 0x63,
    45  	0x6b, 0x53, 0x69, 0x7a, 0x65, 0xcd, 0xfa, 0xce, 0xb0, 0x46,
    46  	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x50, 0x72, 0x65,
    47  	0x66, 0x65, 0x74, 0x63, 0x68, 0xc3, 0xad, 0x48, 0x61, 0x73,
    48  	0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x64,
    49  	0xc2, 0xa7, 0x4c, 0x52, 0x55, 0x54, 0x69, 0x6d, 0x65, 0xc4,
    50  	0xf, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb,
    51  	0xc, 0xd, 0xe, 0xf, 0xa3, 0x54, 0x61, 0x67, 0xa4, 0x6d, 0x61,
    52  	0x72, 0x6b, 0xa5, 0x54, 0x6c, 0x66, 0x49, 0x44, 0xc4, 0x10,
    53  	0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    54  	0x0, 0x17,
    55  }
    56  
    57  func TestDiskBlockCacheMetadataEncodeHardcoded(t *testing.T) {
    58  	codec := kbfscodec.NewMsgpack()
    59  
    60  	bytes, err := codec.Encode(testMetaDb)
    61  	require.NoError(t, err)
    62  	require.Equal(t, testMetaDbEncoded, bytes)
    63  }
    64  
    65  func TestDiskBlockCacheMetadataDecodeHardcoded(t *testing.T) {
    66  	codec := kbfscodec.NewMsgpack()
    67  
    68  	var metaDb DiskBlockCacheMetadata
    69  	err := codec.Decode(testMetaDbEncoded, &metaDb)
    70  	require.NoError(t, err)
    71  
    72  	require.Equal(t, testMetaDb, metaDb)
    73  }