aboutsummaryrefslogtreecommitdiffstats
path: root/encoding.go
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <marcpervaz@qburst.com>2025-02-25 09:47:02 +0530
committerMarc Pervaz Boocha <marcpervaz@qburst.com>2025-02-27 13:38:14 +0530
commita5194b3be4768d42b27ef9e2d0d52479e0436758 (patch)
tree4e60b1b790e63b8aaf8dba77acbfe4599dedbee0 /encoding.go
parentAdd additional test cases to improve coverage and robustness (diff)
downloadcache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar.gz
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar.bz2
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar.lz
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar.xz
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.tar.zst
cache-a5194b3be4768d42b27ef9e2d0d52479e0436758.zip
Removed testify and improved tests
Diffstat (limited to '')
-rw-r--r--encoding.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/encoding.go b/encoding.go
index bc68d2f..1327087 100644
--- a/encoding.go
+++ b/encoding.go
@@ -26,6 +26,7 @@ func (e *encoder) Flush() error {
func (e *encoder) EncodeUint64(val uint64) error {
binary.LittleEndian.PutUint64(e.buf, val)
_, err := e.w.Write(e.buf)
+
return err
}
@@ -39,6 +40,7 @@ func (e *encoder) EncodeBytes(val []byte) error {
}
_, err := e.w.Write(val)
+
return err
}
@@ -84,6 +86,7 @@ func (e *encoder) EncodeStore(s *store) error {
return err
}
}
+
return nil
}
@@ -104,6 +107,7 @@ func (d *decoder) DecodeUint64() (uint64, error) {
if err != nil {
return 0, err
}
+
return binary.LittleEndian.Uint64(d.buf), nil
}
@@ -112,7 +116,12 @@ func (d *decoder) DecodeTime() (time.Time, error) {
if err != nil {
return zero[time.Time](), err
}
- return time.Unix(int64(ts), 0), nil
+
+ t := time.Unix(int64(ts), 0)
+ if t.IsZero() {
+ t = zero[time.Time]()
+ }
+ return t, nil
}
func (d *decoder) DecodeBytes() ([]byte, error) {
@@ -120,8 +129,10 @@ func (d *decoder) DecodeBytes() ([]byte, error) {
if err != nil {
return nil, err
}
+
data := make([]byte, lenVal)
_, err = io.ReadFull(d.r, data)
+
return data, err
}
@@ -132,18 +143,21 @@ func (d *decoder) DecodeNodes() (*node, error) {
if err != nil {
return nil, err
}
+
n.Hash = hash
expiration, err := d.DecodeTime()
if err != nil {
return nil, err
}
+
n.Expiration = expiration
access, err := d.DecodeUint64()
if err != nil {
return nil, err
}
+
n.Access = access
n.Key, err = d.DecodeBytes()
@@ -155,6 +169,7 @@ func (d *decoder) DecodeNodes() (*node, error) {
if err != nil {
return nil, err
}
+
return n, err
}
@@ -163,18 +178,21 @@ func (d *decoder) DecodeStore(s *store) error {
if err != nil {
return err
}
+
s.MaxCost = maxCost
policy, err := d.DecodeUint64()
if err != nil {
return err
}
+
s.Policy.SetPolicy(EvictionPolicyType(policy))
length, err := d.DecodeUint64()
if err != nil {
return err
}
+
s.Length = length
k := 128
@@ -206,6 +224,7 @@ func (d *decoder) DecodeStore(s *store) error {
s.Cost = s.Cost + uint64(len(v.Key)) + uint64(len(v.Value))
}
+
return nil
}
@@ -227,6 +246,7 @@ func (s *store) LoadSnapshot(r io.ReadSeeker) error {
if _, err := r.Seek(0, io.SeekStart); err != nil {
return err
}
+
d := newDecoder(r)
return d.DecodeStore(s)