aboutsummaryrefslogtreecommitdiff
path: root/hash_test.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2025-11-15 00:00:00 +0000
committerGravatar Runxi Yu2025-11-15 00:00:00 +0000
commit6655e9f74eac800e26f57ebdb143111726e8b73d (patch)
treedb36fffb1dac361f0ca42023d747081fefaeb14f /hash_test.go
parentAdd initial support for multi pack indexes (diff)
signature
Use SHA-256 by default
Diffstat (limited to 'hash_test.go')
-rw-r--r--hash_test.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/hash_test.go b/hash_test.go
index 95660d88..e09eadfb 100644
--- a/hash_test.go
+++ b/hash_test.go
@@ -1,21 +1,30 @@
package furgit
-import "testing"
+import (
+ "strings"
+ "testing"
+)
func TestParseHashValidAndInvalid(t *testing.T) {
- const hex40 = "0123456789abcdef0123456789abcdef01234567"
- id, err := ParseHash(hex40)
+ pattern := "0123456789abcdef"
+ repeats := (HashSize*2 + len(pattern) - 1) / len(pattern)
+ hexStr := strings.Repeat(pattern, repeats)[:HashSize*2]
+
+ id, err := ParseHash(hexStr)
if err != nil {
t.Fatalf("ParseHash returned error: %v", err)
}
- if got := id.String(); got != hex40 {
+
+ if got := id.String(); got != hexStr {
t.Fatalf("unexpected String result: %q", got)
}
if _, err := ParseHash("abcd"); err == nil {
t.Fatal("expected error for short hash")
}
- if _, err := ParseHash("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"); err == nil {
+
+ badHex := strings.Repeat("z", HashSize*2)
+ if _, err := ParseHash(badHex); err == nil {
t.Fatal("expected error for non-hex input")
}
}