aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/needle/file_id_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/storage/needle/file_id_test.go')
-rw-r--r--weed/storage/needle/file_id_test.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/weed/storage/needle/file_id_test.go b/weed/storage/needle/file_id_test.go
new file mode 100644
index 000000000..a1a2c61fc
--- /dev/null
+++ b/weed/storage/needle/file_id_test.go
@@ -0,0 +1,55 @@
+package needle
+
+import (
+ "github.com/chrislusf/seaweedfs/weed/storage/types"
+ "testing"
+)
+
+func TestParseFileIdFromString(t *testing.T) {
+ fidStr1 := "100,12345678"
+ _, err := ParseFileIdFromString(fidStr1)
+ if err == nil {
+ t.Errorf("%s : KeyHash is too short", fidStr1)
+ }
+
+ fidStr1 = "100, 12345678"
+ _, err = ParseFileIdFromString(fidStr1)
+ if err == nil {
+ t.Errorf("%s : needlId invalid syntax", fidStr1)
+ }
+
+ fidStr1 = "100,123456789"
+ _, err = ParseFileIdFromString(fidStr1)
+ if err != nil {
+ t.Errorf("%s : should be OK", fidStr1)
+ }
+
+ var fileId *FileId
+ fidStr1 = "100,123456789012345678901234"
+ fileId, err = ParseFileIdFromString(fidStr1)
+ if err != nil {
+ t.Errorf("%s : should be OK", fidStr1)
+ }
+ if !(fileId.VolumeId == VolumeId(100) &&
+ fileId.Key == types.NeedleId(0x1234567890123456) &&
+ fileId.Cookie == types.Cookie(types.Uint32ToCookie(uint32(0x78901234)))) {
+ t.Errorf("src : %s, dest : %v", fidStr1, fileId)
+ }
+
+ fidStr1 = "100,abcd0000abcd"
+ fileId, err = ParseFileIdFromString(fidStr1)
+ if err != nil {
+ t.Errorf("%s : should be OK", fidStr1)
+ }
+ if !(fileId.VolumeId == VolumeId(100) &&
+ fileId.Key == types.NeedleId(0xabcd) &&
+ fileId.Cookie == types.Cookie(types.Uint32ToCookie(uint32(0xabcd)))) {
+ t.Errorf("src : %s, dest : %v", fidStr1, fileId)
+ }
+
+ fidStr1 = "100,1234567890123456789012345"
+ _, err = ParseFileIdFromString(fidStr1)
+ if err == nil {
+ t.Errorf("%s : needleId is too long", fidStr1)
+ }
+}