Chris Lu
9 years ago
2 changed files with 63 additions and 11 deletions
@ -0,0 +1,45 @@ |
|||
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") |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue