Browse Source
Revert "Merge pull request #284 from thinxer/binary"
Revert "Merge pull request #284 from thinxer/binary"
This reverts commitpull/286/head3523ad5239
, reversing changes made to5d100994b1
.
chrislusf
9 years ago
12 changed files with 117 additions and 123 deletions
-
7go/operation/sync_volume.go
-
8go/storage/compact_map_perf_test.go
-
6go/storage/crc.go
-
6go/storage/file_id.go
-
29go/storage/needle.go
-
15go/storage/needle_map.go
-
17go/storage/needle_map_boltdb.go
-
16go/storage/needle_map_leveldb.go
-
40go/storage/needle_read_write.go
-
45go/storage/needle_test.go
-
6go/storage/volume_super_block.go
-
45go/util/bytes.go
@ -1,45 +0,0 @@ |
|||||
package storage |
|
||||
|
|
||||
import "testing" |
|
||||
|
|
||||
func TestParseKeyHash(t *testing.T) { |
|
||||
testcases := []struct { |
|
||||
KeyHash string |
|
||||
ID uint64 |
|
||||
Cookie uint32 |
|
||||
Err bool |
|
||||
}{ |
|
||||
// normal
|
|
||||
{"4ed4c8116e41", 0x4ed4, 0xc8116e41, false}, |
|
||||
// cookie with leading zeros
|
|
||||
{"4ed401116e41", 0x4ed4, 0x01116e41, false}, |
|
||||
// odd length
|
|
||||
{"ed400116e41", 0xed4, 0x00116e41, false}, |
|
||||
// uint
|
|
||||
{"fed4c8114ed4c811f0116e41", 0xfed4c8114ed4c811, 0xf0116e41, false}, |
|
||||
// err: too short
|
|
||||
{"4ed4c811", 0, 0, true}, |
|
||||
// err: too long
|
|
||||
{"4ed4c8114ed4c8114ed4c8111", 0, 0, true}, |
|
||||
// err: invalid character
|
|
||||
{"helloworld", 0, 0, true}, |
|
||||
} |
|
||||
|
|
||||
for _, tc := range testcases { |
|
||||
if id, cookie, err := ParseKeyHash(tc.KeyHash); err != nil && !tc.Err { |
|
||||
t.Fatalf("Parse %s error: %v", tc.KeyHash, err) |
|
||||
} else if err == nil && tc.Err { |
|
||||
t.Fatalf("Parse %s expected error got nil", tc.KeyHash) |
|
||||
} else if id != tc.ID || cookie != tc.Cookie { |
|
||||
t.Fatalf("Parse %s wrong result. Expected: (%d, %d) got: (%d, %d)", tc.KeyHash, tc.ID, tc.Cookie, id, cookie) |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
func BenchmarkParseKeyHash(b *testing.B) { |
|
||||
b.ReportAllocs() |
|
||||
|
|
||||
for i := 0; i < b.N; i++ { |
|
||||
ParseKeyHash("4ed44ed44ed44ed4c8116e41") |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,45 @@ |
|||||
|
package util |
||||
|
|
||||
|
// big endian
|
||||
|
|
||||
|
func BytesToUint64(b []byte) (v uint64) { |
||||
|
length := uint(len(b)) |
||||
|
for i := uint(0); i < length-1; i++ { |
||||
|
v += uint64(b[i]) |
||||
|
v <<= 8 |
||||
|
} |
||||
|
v += uint64(b[length-1]) |
||||
|
return |
||||
|
} |
||||
|
func BytesToUint32(b []byte) (v uint32) { |
||||
|
length := uint(len(b)) |
||||
|
for i := uint(0); i < length-1; i++ { |
||||
|
v += uint32(b[i]) |
||||
|
v <<= 8 |
||||
|
} |
||||
|
v += uint32(b[length-1]) |
||||
|
return |
||||
|
} |
||||
|
func BytesToUint16(b []byte) (v uint16) { |
||||
|
v += uint16(b[0]) |
||||
|
v <<= 8 |
||||
|
v += uint16(b[1]) |
||||
|
return |
||||
|
} |
||||
|
func Uint64toBytes(b []byte, v uint64) { |
||||
|
for i := uint(0); i < 8; i++ { |
||||
|
b[7-i] = byte(v >> (i * 8)) |
||||
|
} |
||||
|
} |
||||
|
func Uint32toBytes(b []byte, v uint32) { |
||||
|
for i := uint(0); i < 4; i++ { |
||||
|
b[3-i] = byte(v >> (i * 8)) |
||||
|
} |
||||
|
} |
||||
|
func Uint16toBytes(b []byte, v uint16) { |
||||
|
b[0] = byte(v >> 8) |
||||
|
b[1] = byte(v) |
||||
|
} |
||||
|
func Uint8toBytes(b []byte, v uint8) { |
||||
|
b[0] = byte(v) |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue