aboutsummaryrefslogtreecommitdiff
path: root/packed_write_test.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-02-20 12:49:27 +0800
committerGravatar Runxi Yu2026-02-20 12:57:31 +0800
commit4e4b630fe88b0f5c1f6f934a760632b9efbeaaf0 (patch)
tree0663e407a65684d4da43fd578c4e27bdef127805 /packed_write_test.go
parentRevert "README: Writing packfiles has deltas now, but not thin packs" (diff)
signatureNo signature
Revert "packed: Cleanup"
This reverts commit 45da63f4d0fd94e5a8b11fc6aa8b626338dcabf8.
Diffstat (limited to 'packed_write_test.go')
-rw-r--r--packed_write_test.go34
1 files changed, 18 insertions, 16 deletions
diff --git a/packed_write_test.go b/packed_write_test.go
index ccd81844..63fd9266 100644
--- a/packed_write_test.go
+++ b/packed_write_test.go
@@ -3,7 +3,6 @@ package furgit
import (
"bytes"
"crypto/rand"
- "encoding/binary"
"fmt"
"os"
"os/exec"
@@ -366,7 +365,7 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error {
if len(data) < 12 {
return ErrInvalidObject
}
- if binary.BigEndian.Uint32(data[0:4]) != packMagic || binary.BigEndian.Uint32(data[4:8]) != packVersion2 {
+ if readBE32(data[0:4]) != packMagic || readBE32(data[4:8]) != packVersion2 {
return ErrInvalidObject
}
pos := 12
@@ -434,14 +433,9 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error {
if baseBody == nil {
return fmt.Errorf("obj %d missing base body", i)
}
- pos := 0
- baseSize, err := packVarintRead(payload, &pos)
+ baseSize, resultSize, err := readDeltaSizes(payload)
if err != nil {
- return fmt.Errorf("obj %d delta base size: %v", i, err)
- }
- resultSize, err := packVarintRead(payload, &pos)
- if err != nil {
- return fmt.Errorf("obj %d delta result size: %v", i, err)
+ return fmt.Errorf("obj %d delta sizes: %v", i, err)
}
if baseSize != len(baseBody) {
return fmt.Errorf("obj %d delta base size mismatch: got %d want %d", i, baseSize, len(baseBody))
@@ -460,14 +454,9 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error {
if baseBody == nil {
return fmt.Errorf("obj %d missing ref base body", i)
}
- pos := 0
- baseSize, err := packVarintRead(payload, &pos)
+ baseSize, resultSize, err := readDeltaSizes(payload)
if err != nil {
- return fmt.Errorf("obj %d ref delta base size: %v", i, err)
- }
- resultSize, err := packVarintRead(payload, &pos)
- if err != nil {
- return fmt.Errorf("obj %d ref delta result size: %v", i, err)
+ return fmt.Errorf("obj %d ref delta sizes: %v", i, err)
}
if baseSize != len(baseBody) {
return fmt.Errorf("obj %d ref delta base size mismatch: got %d want %d", i, baseSize, len(baseBody))
@@ -504,6 +493,19 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error {
return nil
}
+func readDeltaSizes(delta []byte) (int, int, error) {
+ pos := 0
+ baseSize, err := packVarintRead(delta, &pos)
+ if err != nil {
+ return 0, 0, err
+ }
+ resultSize, err := packVarintRead(delta, &pos)
+ if err != nil {
+ return 0, 0, err
+ }
+ return baseSize, resultSize, nil
+}
+
func removeLooseObject(repoPath, oid string) error {
if len(oid) < 2 {
return ErrInvalidObject